]> arthur.barton.de Git - netdata.git/commitdiff
added the VISIBLETOTAL variable and fixed the error message about an invalid format...
authorCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Tue, 3 Jan 2017 21:56:07 +0000 (23:56 +0200)
committerCosta Tsaousis (ktsaou) <costa@tsaousis.gr>
Tue, 3 Jan 2017 21:56:07 +0000 (23:56 +0200)
src/rrd2json.c
src/web_client.c

index fc7bef20479b1305310a90ed9b427b3c2244d708..a5d651525777afadcecd4f3b2f7c15e0b3de7188 100644 (file)
@@ -229,6 +229,7 @@ void rrd_stats_api_v1_charts_allmetrics_shell(BUFFER *wb)
     // for each chart
     RRDSET *st;
     for(st = localhost.rrdset_root; st ; st = st->next) {
+        calculated_number total = 0.0;
         char chart[BASH_ELEMENT_MAX + 1];
         shell_name_copy(chart, st->id, BASH_ELEMENT_MAX);
 
@@ -244,18 +245,20 @@ void rrd_stats_api_v1_charts_allmetrics_shell(BUFFER *wb)
                     shell_name_copy(dimension, rd->id, BASH_ELEMENT_MAX);
 
                     calculated_number n = rd->last_stored_value;
-                    if(rd->multiplier < 0 || rd->divisor < 0)
-                        n = -n;
 
                     if(isnan(n) || isinf(n))
                         buffer_sprintf(wb, "NETDATA_%s_%s=\"\"      # %s\n", chart, dimension, st->units);
                     else {
+                        if(rd->multiplier < 0 || rd->divisor < 0) n = -n;
                         n = roundl(n);
+                        if(!(rd->flags & RRDDIM_FLAG_HIDDEN)) total += n;
                         buffer_sprintf(wb, "NETDATA_%s_%s=\"%0.0Lf\"      # %s\n", chart, dimension, n, st->units);
                     }
                 }
             }
 
+            total = roundl(total);
+            buffer_sprintf(wb, "NETDATA_%s_VISIBLETOTAL=\"%0.0Lf\"      # %s\n", chart, total, st->units);
             pthread_rwlock_unlock(&st->rwlock);
         }
     }
index e5721c0dae01a7b53e49a84f4b135e9115b6250e..f7bf2e5a6bfac4514f36db57884e9b87a7786d80 100644 (file)
@@ -791,6 +791,8 @@ int web_client_api_request_v1_allmetrics(struct web_client *w, char *url)
                 format = ALLMETRICS_SHELL;
             else if(!strcmp(value, ALLMETRICS_FORMAT_PROMETHEUS))
                 format = ALLMETRICS_PROMETHEUS;
+            else
+                format = 0;
         }
     }
 
@@ -810,7 +812,7 @@ int web_client_api_request_v1_allmetrics(struct web_client *w, char *url)
 
         default:
             w->response.data->contenttype = CT_TEXT_PLAIN;
-            buffer_strcat(w->response.data, "Which format? Only '" ALLMETRICS_FORMAT_PROMETHEUS "' is currently supported.");
+            buffer_strcat(w->response.data, "Which format? Only '" ALLMETRICS_FORMAT_SHELL "' and '" ALLMETRICS_FORMAT_PROMETHEUS "' is currently supported.");
             return 400;
     }
 }