Add ACLK buffer usage metrics (#20820)
* Add ACLK buffer usage metrics * Fix typo
Stelios Fragkakis committed
Aug 14, 2025 at 16:21 UTC
3e8ad96b672770c863b182f4fc475ff0d77e7b8e
1 file changed
+35
-1
src/daemon/pulse/pulse-network.c
+35
-1
@@ -499,7 +499,7 @@ void pulse_network_do(bool extended __maybe_unused) {
499
"milliseconds",
500
"netdata",
501
"pulse",
502
- PULSE_NETWORK_CHART_PRIORITY + 1,
502
+ PULSE_NETWORK_CHART_PRIORITY + 4,
503
localhost->rrd_update_every,
504
RRDSET_TYPE_LINE);
505
rd_min = rrddim_add(st_stats, "min", NULL, 1, USEC_PER_MS, RRD_ALGORITHM_ABSOLUTE);
@@ -512,5 +512,39 @@ void pulse_network_do(bool extended __maybe_unused) {
512
rrddim_set_by_pointer(st_stats, rd_max, (collected_number)max_us);
513
rrdset_done(st_stats);
514
}
515
+
516
+ if(extended) {
517
+ static RRDSET *st_aclk_buffer = NULL;
518
+ static RRDDIM *rd_aclk_buffer_used = NULL;
519
+ static RRDDIM *rd_aclk_buffer_free = NULL;
520
+ static RRDDIM *rd_aclk_buffer_size = NULL;
521
+
522
+ if (unlikely(!st_aclk_buffer)) {
523
+ st_aclk_buffer = rrdset_create_localhost(
524
+ "netdata",
525
+ "network_aclk_buffer_usage",
526
+ NULL,
527
+ PULSE_NETWORK_CHART_FAMILY,
528
+ "netdata.network_aclk_buffer_usage",
529
+ "Netdata ACLK Buffer Usage",
530
+ "bytes",
531
+ "netdata",
532
+ "pulse",
533
+ PULSE_NETWORK_CHART_PRIORITY + 5,
534
+ localhost->rrd_update_every,
535
+ RRDSET_TYPE_AREA);
536
+
537
+ rrdlabels_add(st_aclk_buffer->rrdlabels, "endpoint", "aclk", RRDLABEL_SRC_AUTO);
538
+
539
+ rd_aclk_buffer_used = rrddim_add(st_aclk_buffer, "used", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
540
+ rd_aclk_buffer_free = rrddim_add(st_aclk_buffer, "free", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
541
+ rd_aclk_buffer_size = rrddim_add(st_aclk_buffer, "current limit", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
542
+ }
543
+
544
+ rrddim_set_by_pointer(st_aclk_buffer, rd_aclk_buffer_used, (collected_number)t.mqtt.tx_buffer_used);
545
+ rrddim_set_by_pointer(st_aclk_buffer, rd_aclk_buffer_free, (collected_number)t.mqtt.tx_buffer_free);
546
+ rrddim_set_by_pointer(st_aclk_buffer, rd_aclk_buffer_size, (collected_number)t.mqtt.tx_buffer_size);
547
+ rrdset_done(st_aclk_buffer);
548
+ }
549
}
550
}