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);