added the VISIBLETOTAL variable and fixed the error message about an invalid format being requested
Costa Tsaousis (ktsaou) committed
Jan 3, 2017 at 23:56 UTC
aa49687601abbefbb97f5d5ebf116518c1db99f4
2 files changed
+8
-3
src/rrd2json.c
+5
-2
@@ -229,6 +229,7 @@ void rrd_stats_api_v1_charts_allmetrics_shell(BUFFER *wb)
229
// for each chart
230
RRDSET *st;
231
for(st = localhost.rrdset_root; st ; st = st->next) {
232
+ calculated_number total = 0.0;
233
char chart[BASH_ELEMENT_MAX + 1];
234
shell_name_copy(chart, st->id, BASH_ELEMENT_MAX);
235
@@ -244,18 +245,20 @@ void rrd_stats_api_v1_charts_allmetrics_shell(BUFFER *wb)
245
shell_name_copy(dimension, rd->id, BASH_ELEMENT_MAX);
246
247
calculated_number n = rd->last_stored_value;
247
- if(rd->multiplier < 0 || rd->divisor < 0)
248
- n = -n;
248
249
if(isnan(n) || isinf(n))
250
buffer_sprintf(wb, "NETDATA_%s_%s=\"\" # %s\n", chart, dimension, st->units);
251
else {
252
+ if(rd->multiplier < 0 || rd->divisor < 0) n = -n;
253
n = roundl(n);
254
+ if(!(rd->flags & RRDDIM_FLAG_HIDDEN)) total += n;
255
buffer_sprintf(wb, "NETDATA_%s_%s=\"%0.0Lf\" # %s\n", chart, dimension, n, st->units);
256
}
257
}
258
}
259
260
+ total = roundl(total);
261
+ buffer_sprintf(wb, "NETDATA_%s_VISIBLETOTAL=\"%0.0Lf\" # %s\n", chart, total, st->units);
262
pthread_rwlock_unlock(&st->rwlock);
263
}
264
}
src/web_client.c
+3
-1
@@ -791,6 +791,8 @@ int web_client_api_request_v1_allmetrics(struct web_client *w, char *url)
791
format = ALLMETRICS_SHELL;
792
else if(!strcmp(value, ALLMETRICS_FORMAT_PROMETHEUS))
793
format = ALLMETRICS_PROMETHEUS;
794
+ else
795
+ format = 0;
796
}
797
}
798
@@ -810,7 +812,7 @@ int web_client_api_request_v1_allmetrics(struct web_client *w, char *url)
812
813
default:
814
w->response.data->contenttype = CT_TEXT_PLAIN;
813
- buffer_strcat(w->response.data, "Which format? Only '" ALLMETRICS_FORMAT_PROMETHEUS "' is currently supported.");
815
+ buffer_strcat(w->response.data, "Which format? Only '" ALLMETRICS_FORMAT_SHELL "' and '" ALLMETRICS_FORMAT_PROMETHEUS "' is currently supported.");
816
return 400;
817
}
818
}