Make heartbeat a static chart (#12986)
Emmanuel Vasilakis committed
May 23, 2022 at 18:32 UTC
7f39ccb6d3ca7e45745c3e690eeeaa9434356d8b
1 file changed
+28
-23
daemon/global_statistics.c
+28
-23
@@ -854,37 +854,42 @@ static void dbengine_statistics_charts(void) {
854
}
855
856
static void update_heartbeat_charts() {
857
- RRDSET *st = rrdset_create_localhost(
858
- "netdata"
859
- , "heartbeat"
860
- , NULL
861
- , "heartbeat"
862
- , NULL
863
- , "System clock jitter"
864
- , "microseconds"
865
- , "netdata"
866
- , "stats"
867
- , 900000
868
- , localhost->rrd_update_every
869
- , RRDSET_TYPE_AREA
870
- );
871
-
872
- RRDDIM *rd_min = rrddim_add(st, "min", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
873
- RRDDIM *rd_max = rrddim_add(st, "max", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
874
- RRDDIM *rd_avg = rrddim_add(st, "average", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
857
+ static RRDSET *st_heartbeat = NULL;
858
+ static RRDDIM *rd_heartbeat_min = NULL;
859
+ static RRDDIM *rd_heartbeat_max = NULL;
860
+ static RRDDIM *rd_heartbeat_avg = NULL;
861
876
- rrdset_next(st);
862
+ if (unlikely(!st_heartbeat)) {
863
+ st_heartbeat = rrdset_create_localhost(
864
+ "netdata"
865
+ , "heartbeat"
866
+ , NULL
867
+ , "heartbeat"
868
+ , NULL
869
+ , "System clock jitter"
870
+ , "microseconds"
871
+ , "netdata"
872
+ , "stats"
873
+ , 900000
874
+ , localhost->rrd_update_every
875
+ , RRDSET_TYPE_AREA);
876
+
877
+ rd_heartbeat_min = rrddim_add(st_heartbeat, "min", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
878
+ rd_heartbeat_max = rrddim_add(st_heartbeat, "max", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
879
+ rd_heartbeat_avg = rrddim_add(st_heartbeat, "average", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
880
+ } else
881
+ rrdset_next(st_heartbeat);
882
883
usec_t min, max, average;
884
size_t count;
885
886
heartbeat_statistics(&min, &max, &average, &count);
887
883
- rrddim_set_by_pointer(st, rd_min, (collected_number)min);
884
- rrddim_set_by_pointer(st, rd_max, (collected_number)max);
885
- rrddim_set_by_pointer(st, rd_avg, (collected_number)average);
888
+ rrddim_set_by_pointer(st_heartbeat, rd_heartbeat_min, (collected_number)min);
889
+ rrddim_set_by_pointer(st_heartbeat, rd_heartbeat_max, (collected_number)max);
890
+ rrddim_set_by_pointer(st_heartbeat, rd_heartbeat_avg, (collected_number)average);
891
887
- rrdset_done(st);
892
+ rrdset_done(st_heartbeat);
893
}
894
895
// ---------------------------------------------------------------------------------------------------------------------