@cryptotaxi247 / netdata-1 / commits / 5eabd11d4

added chart to monitor the backend server latency

Costa Tsaousis (ktsaou) committed Nov 20, 2016 at 15:29 UTC 5eabd11d450317f51ab4a8ea8a41f32fb93c39bc
1 file changed +19 -3
src/backends.c
+19 -3
@@ -329,7 +329,8 @@ void *backends_main(void *ptr) {
329 chart_transmission_failures = 0,
330 chart_data_lost_events = 0,
331 chart_lost_bytes = 0,
332 - chart_backend_reconnects = 0;
332 + chart_backend_reconnects = 0,
333 + chart_backend_latency = 0;
334
335 RRDSET *chart_metrics = rrdset_find("netdata.backend_metrics");
336 if(!chart_metrics) {
@@ -349,13 +350,19 @@ void *backends_main(void *ptr) {
350
351 RRDSET *chart_ops = rrdset_find("netdata.backend_ops");
352 if(!chart_ops) {
352 - chart_ops = rrdset_create("netdata", "backend_ops", NULL, "backend", NULL, "Netdata Backend Operations", "operations", 130620, frequency, RRDSET_TYPE_LINE);
353 + chart_ops = rrdset_create("netdata", "backend_ops", NULL, "backend", NULL, "Netdata Backend Operations", "operations", 130630, frequency, RRDSET_TYPE_LINE);
354 rrddim_add(chart_ops, "write", NULL, 1, 1, RRDDIM_ABSOLUTE);
355 rrddim_add(chart_ops, "discard", NULL, 1, 1, RRDDIM_ABSOLUTE);
356 rrddim_add(chart_ops, "reconnect", NULL, 1, 1, RRDDIM_ABSOLUTE);
357 rrddim_add(chart_ops, "failure", NULL, 1, 1, RRDDIM_ABSOLUTE);
358 }
359
360 + RRDSET *chart_latency = rrdset_find("netdata.backend_latency");
361 + if(!chart_latency) {
362 + chart_latency = rrdset_create("netdata", "backend_latency", NULL, "backend", NULL, "Netdata Backend Latency", "ms", 130620, frequency, RRDSET_TYPE_AREA);
363 + rrddim_add(chart_latency, "latency", NULL, 1, 1000, RRDDIM_ABSOLUTE);
364 + }
365 +
366 // ------------------------------------------------------------------------
367 // prepare the backend main loop
368
@@ -419,7 +426,8 @@ void *backends_main(void *ptr) {
426 chart_transmission_failures =
427 chart_data_lost_events =
428 chart_lost_bytes =
422 - chart_backend_reconnects = 0;
429 + chart_backend_reconnects =
430 + chart_backend_latency = 0;
431
432 if(unlikely(netdata_exit)) break;
433
@@ -430,6 +438,7 @@ void *backends_main(void *ptr) {
438 // connect to a backend server
439
440 if(unlikely(sock == -1)) {
441 + unsigned long long start_ut = time_usec();
442 const char *s = destination;
443 while(*s) {
444 const char *e = s;
@@ -450,6 +459,7 @@ void *backends_main(void *ptr) {
459 if(sock != -1) break;
460 s = e;
461 }
462 + chart_backend_latency += time_usec() - start_ut;
463 }
464
465 if(unlikely(netdata_exit)) break;
@@ -459,7 +469,9 @@ void *backends_main(void *ptr) {
469
470 if(likely(sock != -1)) {
471 size_t len = buffer_strlen(b);
472 + unsigned long long start_ut = time_usec();
473 ssize_t written = write(sock, buffer_tostring(b), len);
474 + chart_backend_latency += time_usec() - start_ut;
475 if(written != -1 && (size_t)written == len) {
476 // we sent the data successfully
477 chart_transmission_successes++;
@@ -536,6 +548,10 @@ void *backends_main(void *ptr) {
548 rrddim_set(chart_bytes, "sent", chart_sent_bytes);
549 rrdset_done(chart_bytes);
550
551 + if(chart_latency->counter_done) rrdset_next(chart_latency);
552 + rrddim_set(chart_latency, "latency", chart_backend_latency);
553 + rrdset_done(chart_latency);
554 +
555 if(likely(buffer_strlen(b) == 0))
556 chart_buffered_metrics = 0;
557