@cryptotaxi247 / netdata-1 / commits / d8578a093

added reads operations and bytes to backend charts; #1432

Costa Tsaousis (ktsaou) committed Dec 24, 2016 at 20:44 UTC d8578a093cb5dd724eb26dc14ca4933d3e14880d
2 files changed +24 -15
conf.d/health.d/backend.conf
+2 -2
@@ -15,7 +15,7 @@
15 alarm: backend_metrics_sent
16 on: netdata.backend_metrics
17 units: %
18 - calc: $sent * 100 / $buffered
18 + calc: abs($sent) * 100 / abs($buffered)
19 every: 10s
20 warn: $this != 100
21 delay: down 5m multiplier 1.5 max 1h
@@ -25,7 +25,7 @@
25 alarm: backend_metrics_lost
26 on: netdata.backend_metrics
27 units: metrics
28 - calc: $lost
28 + calc: abs($lost)
29 every: 10s
30 crit: $this != 0
31 delay: down 5m multiplier 1.5 max 1h
src/backends.c
+22 -13
@@ -228,7 +228,9 @@ void *backends_main(void *ptr) {
228 chart_lost_metrics = 0,
229 chart_sent_metrics = 0,
230 chart_buffered_bytes = 0,
231 + chart_received_bytes = 0,
232 chart_sent_bytes = 0,
233 + chart_receptions = 0,
234 chart_transmission_successes = 0,
235 chart_transmission_failures = 0,
236 chart_data_lost_events = 0,
@@ -239,26 +241,28 @@ void *backends_main(void *ptr) {
241 RRDSET *chart_metrics = rrdset_find("netdata.backend_metrics");
242 if(!chart_metrics) {
243 chart_metrics = rrdset_create("netdata", "backend_metrics", NULL, "backend", NULL, "Netdata Buffered Metrics", "metrics", 130600, frequency, RRDSET_TYPE_LINE);
242 - rrddim_add(chart_metrics, "buffered", NULL, 1, 1, RRDDIM_ABSOLUTE);
243 - rrddim_add(chart_metrics, "lost", NULL, 1, 1, RRDDIM_ABSOLUTE);
244 - rrddim_add(chart_metrics, "sent", NULL, 1, 1, RRDDIM_ABSOLUTE);
244 + rrddim_add(chart_metrics, "buffered", NULL, 1, 1, RRDDIM_ABSOLUTE);
245 + rrddim_add(chart_metrics, "lost", NULL, 1, 1, RRDDIM_ABSOLUTE);
246 + rrddim_add(chart_metrics, "sent", NULL, 1, 1, RRDDIM_ABSOLUTE);
247 }
248
249 RRDSET *chart_bytes = rrdset_find("netdata.backend_bytes");
250 if(!chart_bytes) {
251 chart_bytes = rrdset_create("netdata", "backend_bytes", NULL, "backend", NULL, "Netdata Backend Data Size", "KB", 130610, frequency, RRDSET_TYPE_AREA);
250 - rrddim_add(chart_bytes, "buffered", NULL, 1, 1024, RRDDIM_ABSOLUTE);
251 - rrddim_add(chart_bytes, "lost", NULL, 1, 1024, RRDDIM_ABSOLUTE);
252 - rrddim_add(chart_bytes, "sent", NULL, 1, 1024, RRDDIM_ABSOLUTE);
252 + rrddim_add(chart_bytes, "buffered", NULL, 1, 1024, RRDDIM_ABSOLUTE);
253 + rrddim_add(chart_bytes, "lost", NULL, 1, 1024, RRDDIM_ABSOLUTE);
254 + rrddim_add(chart_bytes, "sent", NULL, 1, 1024, RRDDIM_ABSOLUTE);
255 + rrddim_add(chart_bytes, "received", NULL, 1, 1024, RRDDIM_ABSOLUTE);
256 }
257
258 RRDSET *chart_ops = rrdset_find("netdata.backend_ops");
259 if(!chart_ops) {
260 chart_ops = rrdset_create("netdata", "backend_ops", NULL, "backend", NULL, "Netdata Backend Operations", "operations", 130630, frequency, RRDSET_TYPE_LINE);
258 - rrddim_add(chart_ops, "write", NULL, 1, 1, RRDDIM_ABSOLUTE);
259 - rrddim_add(chart_ops, "discard", NULL, 1, 1, RRDDIM_ABSOLUTE);
260 - rrddim_add(chart_ops, "reconnect", NULL, 1, 1, RRDDIM_ABSOLUTE);
261 - rrddim_add(chart_ops, "failure", NULL, 1, 1, RRDDIM_ABSOLUTE);
261 + rrddim_add(chart_ops, "write", NULL, 1, 1, RRDDIM_ABSOLUTE);
262 + rrddim_add(chart_ops, "discard", NULL, 1, 1, RRDDIM_ABSOLUTE);
263 + rrddim_add(chart_ops, "reconnect", NULL, 1, 1, RRDDIM_ABSOLUTE);
264 + rrddim_add(chart_ops, "failure", NULL, 1, 1, RRDDIM_ABSOLUTE);
265 + rrddim_add(chart_ops, "read", NULL, 1, 1, RRDDIM_ABSOLUTE);
266 }
267
268 RRDSET *chart_latency = rrdset_find("netdata.backend_latency");
@@ -332,6 +336,7 @@ void *backends_main(void *ptr) {
336 chart_buffered_bytes = (collected_number)buffer_strlen(b);
337
338 // reset the monitoring chart counters
339 + chart_received_bytes =
340 chart_sent_bytes =
341 chart_sent_metrics =
342 chart_lost_metrics =
@@ -358,11 +363,12 @@ void *backends_main(void *ptr) {
363 while(sock != -1 && errno != EWOULDBLOCK) {
364 buffer_need_bytes(response, 4096);
365
361 - ssize_t r = recv(sock, &response->buffer[response->len], response->size - response->len
362 - , O_NONBLOCK);
366 + ssize_t r = recv(sock, &response->buffer[response->len], response->size - response->len, O_NONBLOCK);
367 if(likely(r > 0)) {
368 // we received some data
369 response->len += r;
370 + chart_received_bytes += r;
371 + chart_receptions++;
372 }
373 else if(r == 0) {
374 error("Backend '%s' closed the socket", destination);
@@ -371,8 +377,9 @@ void *backends_main(void *ptr) {
377 }
378 else {
379 // failed to receive data
374 - if(errno != EAGAIN && errno != EWOULDBLOCK)
380 + if(errno != EAGAIN && errno != EWOULDBLOCK) {
381 error("Cannot receive data from backend '%s'.", destination);
382 + }
383 }
384 }
385
@@ -499,6 +506,7 @@ void *backends_main(void *ptr) {
506 // update the monitoring charts
507
508 if(chart_ops->counter_done) rrdset_next(chart_ops);
509 + rrddim_set(chart_ops, "read", chart_receptions);
510 rrddim_set(chart_ops, "write", chart_transmission_successes);
511 rrddim_set(chart_ops, "discard", chart_data_lost_events);
512 rrddim_set(chart_ops, "failure", chart_transmission_failures);
@@ -515,6 +523,7 @@ void *backends_main(void *ptr) {
523 rrddim_set(chart_bytes, "buffered", chart_buffered_bytes);
524 rrddim_set(chart_bytes, "lost", chart_lost_bytes);
525 rrddim_set(chart_bytes, "sent", chart_sent_bytes);
526 + rrddim_set(chart_bytes, "received", chart_received_bytes);
527 rrdset_done(chart_bytes);
528
529 if(chart_latency->counter_done) rrdset_next(chart_latency);