summaryrefslogtreecommitdiffstats
path: root/daemon
diff options
context:
space:
mode:
authorEmmanuel Vasilakis <mrzammler@mm.st>2022-05-23 18:32:45 +0300
committerGitHub <noreply@github.com>2022-05-23 18:32:45 +0300
commit7f39ccb6d3ca7e45745c3e690eeeaa9434356d8b (patch)
tree3b0d2a43a6e28bb94a3aed049bba5ef623cd082e /daemon
parentcfe983fc06a5d4454fc77403435d39a98e3e6549 (diff)
Make heartbeat a static chart (#12986)
Diffstat (limited to 'daemon')
-rw-r--r--daemon/global_statistics.c51
1 files changed, 28 insertions, 23 deletions
diff --git a/daemon/global_statistics.c b/daemon/global_statistics.c
index 9aedb6a208..05b8804aa4 100644
--- a/daemon/global_statistics.c
+++ b/daemon/global_statistics.c
@@ -854,37 +854,42 @@ static void dbengine_statistics_charts(void) {
}
static void update_heartbeat_charts() {
- RRDSET *st = rrdset_create_localhost(
- "netdata"
- , "heartbeat"
- , NULL
- , "heartbeat"
- , NULL
- , "System clock jitter"
- , "microseconds"
- , "netdata"
- , "stats"
- , 900000
- , localhost->rrd_update_every
- , RRDSET_TYPE_AREA
- );
-
- RRDDIM *rd_min = rrddim_add(st, "min", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
- RRDDIM *rd_max = rrddim_add(st, "max", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
- RRDDIM *rd_avg = rrddim_add(st, "average", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+ static RRDSET *st_heartbeat = NULL;
+ static RRDDIM *rd_heartbeat_min = NULL;
+ static RRDDIM *rd_heartbeat_max = NULL;
+ static RRDDIM *rd_heartbeat_avg = NULL;
- rrdset_next(st);
+ if (unlikely(!st_heartbeat)) {
+ st_heartbeat = rrdset_create_localhost(
+ "netdata"
+ , "heartbeat"
+ , NULL
+ , "heartbeat"
+ , NULL
+ , "System clock jitter"
+ , "microseconds"
+ , "netdata"
+ , "stats"
+ , 900000
+ , localhost->rrd_update_every
+ , RRDSET_TYPE_AREA);
+
+ rd_heartbeat_min = rrddim_add(st_heartbeat, "min", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+ rd_heartbeat_max = rrddim_add(st_heartbeat, "max", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+ rd_heartbeat_avg = rrddim_add(st_heartbeat, "average", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
+ } else
+ rrdset_next(st_heartbeat);
usec_t min, max, average;
size_t count;
heartbeat_statistics(&min, &max, &average, &count);
- rrddim_set_by_pointer(st, rd_min, (collected_number)min);
- rrddim_set_by_pointer(st, rd_max, (collected_number)max);
- rrddim_set_by_pointer(st, rd_avg, (collected_number)average);
+ rrddim_set_by_pointer(st_heartbeat, rd_heartbeat_min, (collected_number)min);
+ rrddim_set_by_pointer(st_heartbeat, rd_heartbeat_max, (collected_number)max);
+ rrddim_set_by_pointer(st_heartbeat, rd_heartbeat_avg, (collected_number)average);
- rrdset_done(st);
+ rrdset_done(st_heartbeat);
}
// ---------------------------------------------------------------------------------------------------------------------