fix(freebsd.plugin): correct disks/network devices charts (#19866)
Ilya Mashchenko committed
Mar 14, 2025 at 23:59 UTC
a02c0ceb0bf7b6f268bd3ecb34e4edac33a917a2
3 files changed
+34
-23
src/collectors/freebsd.plugin/freebsd_devstat.c
+16
-8
@@ -352,7 +352,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
352
dm->st_io = rrdset_create_localhost("disk",
353
disk,
354
NULL,
355
- disk,
355
+ "io",
356
"disk.io",
357
"Disk I/O Bandwidth",
358
"KiB/s",
@@ -369,6 +369,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
369
RRD_ALGORITHM_INCREMENTAL);
370
dm->rd_io_free = rrddim_add(dm->st_io, "frees", NULL, -1, KILO_FACTOR,
371
RRD_ALGORITHM_INCREMENTAL);
372
+ rrdlabels_add(dm->st_io->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
373
}
374
375
rrddim_set_by_pointer(dm->st_io, dm->rd_io_in, dstat[i].bytes[DEVSTAT_READ]);
@@ -382,7 +383,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
383
dm->st_ops = rrdset_create_localhost("disk_ops",
384
disk,
385
NULL,
385
- disk,
386
+ "ops",
387
"disk.ops",
388
"Disk Completed I/O Operations",
389
"operations/s",
@@ -401,6 +402,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
402
RRD_ALGORITHM_INCREMENTAL);
403
dm->rd_ops_free = rrddim_add(dm->st_ops, "frees", NULL, -1, 1,
404
RRD_ALGORITHM_INCREMENTAL);
405
+ rrdlabels_add(dm->st_ops->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
406
}
407
408
rrddim_set_by_pointer(dm->st_ops, dm->rd_ops_in, dstat[i].operations[DEVSTAT_READ]);
@@ -415,7 +417,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
417
dm->st_qops = rrdset_create_localhost("disk_qops",
418
disk,
419
NULL,
418
- disk,
420
+ "ops",
421
"disk.qops",
422
"Disk Current I/O Operations",
423
"operations",
@@ -427,6 +429,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
429
);
430
431
dm->rd_qops = rrddim_add(dm->st_qops, "operations", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
432
+ rrdlabels_add(dm->st_qops->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
433
}
434
435
rrddim_set_by_pointer(dm->st_qops, dm->rd_qops, dstat[i].start_count - dstat[i].end_count);
@@ -438,7 +441,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
441
dm->st_util = rrdset_create_localhost("disk_util",
442
disk,
443
NULL,
441
- disk,
444
+ "utilization",
445
"disk.util",
446
"Disk Utilization Time",
447
"% of time working",
@@ -451,6 +454,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
454
455
dm->rd_util = rrddim_add(dm->st_util, "utilization", NULL, 1, 10,
456
RRD_ALGORITHM_INCREMENTAL);
457
+ rrdlabels_add(dm->st_util->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
458
}
459
460
rrddim_set_by_pointer(dm->st_util, dm->rd_util, cur_dstat.busy_time_ms);
@@ -462,7 +466,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
466
dm->st_iotime = rrdset_create_localhost("disk_iotime",
467
disk,
468
NULL,
465
- disk,
469
+ "io",
470
"disk.iotime",
471
"Disk Total I/O Time",
472
"milliseconds/s",
@@ -481,6 +485,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
485
RRD_ALGORITHM_INCREMENTAL);
486
dm->rd_iotime_free = rrddim_add(dm->st_iotime, "frees", NULL, -1, 1,
487
RRD_ALGORITHM_INCREMENTAL);
488
+ rrdlabels_add(dm->st_iotime->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
489
}
490
491
rrddim_set_by_pointer(dm->st_iotime, dm->rd_iotime_in, cur_dstat.duration_read_ms);
@@ -499,7 +504,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
504
dm->st_await = rrdset_create_localhost("disk_await",
505
disk,
506
NULL,
502
- disk,
507
+ "io",
508
"disk.await",
509
"Average Completed I/O Operation Time",
510
"milliseconds/operation",
@@ -518,6 +523,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
523
RRD_ALGORITHM_ABSOLUTE);
524
dm->rd_await_free = rrddim_add(dm->st_await, "frees", NULL, -1, 1,
525
RRD_ALGORITHM_ABSOLUTE);
526
+ rrdlabels_add(dm->st_await->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
527
}
528
529
rrddim_set_by_pointer(dm->st_await, dm->rd_await_in,
@@ -556,7 +562,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
562
dm->st_avagsz = rrdset_create_localhost("disk_avgsz",
563
disk,
564
NULL,
559
- disk,
565
+ "io",
566
"disk.avgsz",
567
"Average Completed I/O Operation Bandwidth",
568
"KiB/operation",
@@ -573,6 +579,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
579
RRD_ALGORITHM_ABSOLUTE);
580
dm->rd_avagsz_free = rrddim_add(dm->st_avagsz, "frees", NULL, -1, KILO_FACTOR,
581
RRD_ALGORITHM_ABSOLUTE);
582
+ rrdlabels_add(dm->st_avagsz->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
583
}
584
585
rrddim_set_by_pointer(dm->st_avagsz, dm->rd_avagsz_in,
@@ -604,7 +611,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
611
dm->st_svctm = rrdset_create_localhost("disk_svctm",
612
disk,
613
NULL,
607
- disk,
614
+ "ops",
615
"disk.svctm",
616
"Average Service Time",
617
"milliseconds/operation",
@@ -617,6 +624,7 @@ int do_kern_devstat(int update_every, usec_t dt) {
624
625
dm->rd_svctm = rrddim_add(dm->st_svctm, "svctm", NULL, 1, 1,
626
RRD_ALGORITHM_ABSOLUTE);
627
+ rrdlabels_add(dm->st_svctm->rrdlabels, "device", disk, RRDLABEL_SRC_AUTO);
628
}
629
630
rrddim_set_by_pointer(dm->st_svctm, dm->rd_svctm,
src/collectors/freebsd.plugin/freebsd_getifaddrs.c
+10
-5
@@ -426,7 +426,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
426
ifm->st_bandwidth = rrdset_create_localhost("net",
427
ifa->ifa_name,
428
NULL,
429
- ifa->ifa_name,
429
+ "traffik",
430
"net.net",
431
"Bandwidth",
432
"kilobits/s",
@@ -439,6 +439,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
439
440
ifm->rd_bandwidth_in = rrddim_add(ifm->st_bandwidth, "received", NULL, 8, BITS_IN_A_KILOBIT, RRD_ALGORITHM_INCREMENTAL);
441
ifm->rd_bandwidth_out = rrddim_add(ifm->st_bandwidth, "sent", NULL, -8, BITS_IN_A_KILOBIT, RRD_ALGORITHM_INCREMENTAL);
442
+ rrdlabels_add(ifm->st_bandwidth->rrdlabels, "device", ifa->ifa_name, RRDLABEL_SRC_AUTO);
443
}
444
445
rrddim_set_by_pointer(ifm->st_bandwidth, ifm->rd_bandwidth_in, IFA_DATA(ibytes));
@@ -451,7 +452,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
452
ifm->st_packets = rrdset_create_localhost("net_packets",
453
ifa->ifa_name,
454
NULL,
454
- ifa->ifa_name,
455
+ "packets",
456
"net.packets",
457
"Packets",
458
"packets/s",
@@ -470,6 +471,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
471
RRD_ALGORITHM_INCREMENTAL);
472
ifm->rd_packets_m_out = rrddim_add(ifm->st_packets, "multicast_sent", NULL, -1, 1,
473
RRD_ALGORITHM_INCREMENTAL);
474
+ rrdlabels_add(ifm->st_packets->rrdlabels, "device", ifa->ifa_name, RRDLABEL_SRC_AUTO);
475
}
476
477
rrddim_set_by_pointer(ifm->st_packets, ifm->rd_packets_in, IFA_DATA(ipackets));
@@ -484,7 +486,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
486
ifm->st_errors = rrdset_create_localhost("net_errors",
487
ifa->ifa_name,
488
NULL,
487
- ifa->ifa_name,
489
+ "errors",
490
"net.errors",
491
"Interface Errors",
492
"errors/s",
@@ -497,6 +499,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
499
500
ifm->rd_errors_in = rrddim_add(ifm->st_errors, "inbound", NULL, 1, 1, RRD_ALGORITHM_INCREMENTAL);
501
ifm->rd_errors_out = rrddim_add(ifm->st_errors, "outbound", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
502
+ rrdlabels_add(ifm->st_errors->rrdlabels, "device", ifa->ifa_name, RRDLABEL_SRC_AUTO);
503
}
504
505
rrddim_set_by_pointer(ifm->st_errors, ifm->rd_errors_in, IFA_DATA(ierrors));
@@ -509,7 +512,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
512
ifm->st_drops = rrdset_create_localhost("net_drops",
513
ifa->ifa_name,
514
NULL,
512
- ifa->ifa_name,
515
+ "drops",
516
"net.drops",
517
"Interface Drops",
518
"drops/s",
@@ -524,6 +527,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
527
#if __FreeBSD__ >= 11
528
ifm->rd_drops_out = rrddim_add(ifm->st_drops, "outbound", NULL, -1, 1, RRD_ALGORITHM_INCREMENTAL);
529
#endif
530
+ rrdlabels_add(ifm->st_drops->rrdlabels, "device", ifa->ifa_name, RRDLABEL_SRC_AUTO);
531
}
532
533
rrddim_set_by_pointer(ifm->st_drops, ifm->rd_drops_in, IFA_DATA(iqdrops));
@@ -538,7 +542,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
542
ifm->st_events = rrdset_create_localhost("net_events",
543
ifa->ifa_name,
544
NULL,
541
- ifa->ifa_name,
545
+ "errors",
546
"net.events",
547
"Network Interface Events",
548
"events/s",
@@ -551,6 +555,7 @@ int do_getifaddrs(int update_every, usec_t dt) {
555
556
ifm->rd_events_coll = rrddim_add(ifm->st_events, "collisions", NULL, -1, 1,
557
RRD_ALGORITHM_INCREMENTAL);
558
+ rrdlabels_add(ifm->st_events->rrdlabels, "device", ifa->ifa_name, RRDLABEL_SRC_AUTO);
559
}
560
561
rrddim_set_by_pointer(ifm->st_events, ifm->rd_events_coll, IFA_DATA(collisions));
src/collectors/freebsd.plugin/freebsd_getmntinfo.c
+8
-10
@@ -174,8 +174,6 @@ int do_getmntinfo(int update_every, usec_t dt) {
174
mount_points_found = 0;
175
176
for (i = 0; i < mntsize; i++) {
177
- char title[4096 + 1];
178
-
177
struct mount_point *m = get_mount_point(mntbuf[i].f_mntonname);
178
m->updated = 1;
179
mount_points_found++;
@@ -214,14 +212,12 @@ int do_getmntinfo(int update_every, usec_t dt) {
212
213
if (m->do_space == CONFIG_BOOLEAN_YES || m->do_space == CONFIG_BOOLEAN_AUTO) {
214
if (unlikely(!m->st_space)) {
217
- snprintfz(title, sizeof(title) - 1, "Disk Space Usage for %s [%s]",
218
- mntbuf[i].f_mntonname, mntbuf[i].f_mntfromname);
215
m->st_space = rrdset_create_localhost("disk_space",
216
mntbuf[i].f_mntonname,
217
NULL,
222
- mntbuf[i].f_mntonname,
218
+ "used space",
219
"disk.space",
224
- title,
220
+ "Disk Space Usage",
221
"GiB",
222
"freebsd.plugin",
223
"getmntinfo",
@@ -236,6 +232,8 @@ int do_getmntinfo(int update_every, usec_t dt) {
232
mntbuf[i].f_bsize, GIGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
233
m->rd_space_reserved = rrddim_add(m->st_space, "reserved_for_root", "reserved for root",
234
mntbuf[i].f_bsize, GIGA_FACTOR, RRD_ALGORITHM_ABSOLUTE);
235
+ rrdlabels_add(m->st_space->rrdlabels, "mount_point", mntbuf[i].f_mntonname, RRDLABEL_SRC_AUTO);
236
+ rrdlabels_add(m->st_space->rrdlabels, "filesystem", mntbuf[i].f_fstypename, RRDLABEL_SRC_AUTO);
237
}
238
239
rrddim_set_by_pointer(m->st_space, m->rd_space_avail, (collected_number) mntbuf[i].f_bavail);
@@ -250,14 +248,12 @@ int do_getmntinfo(int update_every, usec_t dt) {
248
249
if (m->do_inodes == CONFIG_BOOLEAN_YES || m->do_inodes == CONFIG_BOOLEAN_AUTO) {
250
if (unlikely(!m->st_inodes)) {
253
- snprintfz(title, sizeof(title) - 1, "Disk Files (inodes) Usage for %s [%s]",
254
- mntbuf[i].f_mntonname, mntbuf[i].f_mntfromname);
251
m->st_inodes = rrdset_create_localhost("disk_inodes",
252
mntbuf[i].f_mntonname,
253
NULL,
258
- mntbuf[i].f_mntonname,
254
+ "used inodes",
255
"disk.inodes",
260
- title,
256
+ "Disk Files (inodes) Usage",
257
"inodes",
258
"freebsd.plugin",
259
"getmntinfo",
@@ -268,6 +264,8 @@ int do_getmntinfo(int update_every, usec_t dt) {
264
265
m->rd_inodes_avail = rrddim_add(m->st_inodes, "avail", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
266
m->rd_inodes_used = rrddim_add(m->st_inodes, "used", NULL, 1, 1, RRD_ALGORITHM_ABSOLUTE);
267
+ rrdlabels_add(m->st_inodes->rrdlabels, "mount_point", mntbuf[i].f_mntonname, RRDLABEL_SRC_AUTO);
268
+ rrdlabels_add(m->st_inodes->rrdlabels, "filesystem", mntbuf[i].f_fstypename, RRDLABEL_SRC_AUTO);
269
}
270
271
rrddim_set_by_pointer(m->st_inodes, m->rd_inodes_avail, (collected_number) mntbuf[i].f_ffree);