diskspace/diskstats: don't create runtime disk config by default (#16503)
Ilya Mashchenko committed
Nov 29, 2023 at 22:30 UTC
d77e3155be309e278a11a08abf8f517809b2c326
2 files changed
+48
-18
collectors/diskspace.plugin/plugin_diskspace.c
+10
-4
@@ -346,8 +346,6 @@ static inline void do_disk_space_stats(struct mountinfo *mi, int update_every) {
346
struct mount_point_metadata *m = dictionary_get(dict_mountpoints, mi->mount_point);
347
if(unlikely(!m)) {
348
int slow = 0;
349
- char var_name[4096 + 1];
350
- snprintfz(var_name, 4096, "plugin:proc:diskspace:%s", mi->mount_point);
349
350
int def_space = config_get_boolean_ondemand(CONFIG_SECTION_DISKSPACE, "space usage for all disks", CONFIG_BOOLEAN_AUTO);
351
int def_inodes = config_get_boolean_ondemand(CONFIG_SECTION_DISKSPACE, "inodes usage for all disks", CONFIG_BOOLEAN_AUTO);
@@ -398,8 +396,16 @@ static inline void do_disk_space_stats(struct mountinfo *mi, int update_every) {
396
slow = 1;
397
}
398
401
- do_space = config_get_boolean_ondemand(var_name, "space usage", def_space);
402
- do_inodes = config_get_boolean_ondemand(var_name, "inodes usage", def_inodes);
399
+ char var_name[4096 + 1];
400
+ snprintfz(var_name, 4096, "plugin:proc:diskspace:%s", mi->mount_point);
401
+
402
+ do_space = def_space;
403
+ do_inodes = def_inodes;
404
+
405
+ if (config_exists(var_name, "space usage"))
406
+ do_space = config_get_boolean_ondemand(var_name, "space usage", def_space);
407
+ if (config_exists(var_name, "inodes usage"))
408
+ do_inodes = config_get_boolean_ondemand(var_name, "inodes usage", def_inodes);
409
410
struct mount_point_metadata mp = {
411
.do_space = do_space,
collectors/proc.plugin/proc_diskstats.c
+38
-14
@@ -601,7 +601,9 @@ static void get_disk_config(struct disk *d) {
601
char var_name[4096 + 1];
602
snprintfz(var_name, 4096, CONFIG_SECTION_PLUGIN_PROC_DISKSTATS ":%s", d->disk);
603
604
- def_enable = config_get_boolean_ondemand(var_name, "enable", def_enable);
604
+ if (config_exists(var_name, "enable"))
605
+ def_enable = config_get_boolean_ondemand(var_name, "enable", def_enable);
606
+
607
if(unlikely(def_enable == CONFIG_BOOLEAN_NO)) {
608
// the user does not want any metrics for this disk
609
d->do_io = CONFIG_BOOLEAN_NO;
@@ -653,7 +655,8 @@ static void get_disk_config(struct disk *d) {
655
656
// def_performance
657
// check the user configuration (this will also show our 'on demand' decision)
656
- def_performance = config_get_boolean_ondemand(var_name, "enable performance metrics", def_performance);
658
+ if (config_exists(var_name, "enable performance metrics"))
659
+ def_performance = config_get_boolean_ondemand(var_name, "enable performance metrics", def_performance);
660
661
int ddo_io = CONFIG_BOOLEAN_NO,
662
ddo_ops = CONFIG_BOOLEAN_NO,
@@ -680,19 +683,40 @@ static void get_disk_config(struct disk *d) {
683
d->excluded = true;
684
}
685
683
- d->do_io = config_get_boolean_ondemand(var_name, "bandwidth", ddo_io);
684
- d->do_ops = config_get_boolean_ondemand(var_name, "operations", ddo_ops);
685
- d->do_mops = config_get_boolean_ondemand(var_name, "merged operations", ddo_mops);
686
- d->do_iotime = config_get_boolean_ondemand(var_name, "i/o time", ddo_iotime);
687
- d->do_qops = config_get_boolean_ondemand(var_name, "queued operations", ddo_qops);
688
- d->do_util = config_get_boolean_ondemand(var_name, "utilization percentage", ddo_util);
689
- d->do_ext = config_get_boolean_ondemand(var_name, "extended operations", ddo_ext);
690
- d->do_backlog = config_get_boolean_ondemand(var_name, "backlog", ddo_backlog);
691
-
692
- if(d->device_is_bcache)
693
- d->do_bcache = config_get_boolean_ondemand(var_name, "bcache", ddo_bcache);
694
- else
686
+ d->do_io = ddo_io;
687
+ d->do_ops = ddo_ops;
688
+ d->do_mops = ddo_mops;
689
+ d->do_iotime = ddo_iotime;
690
+ d->do_qops = ddo_qops;
691
+ d->do_util = ddo_util;
692
+ d->do_ext = ddo_ext;
693
+ d->do_backlog = ddo_backlog;
694
+
695
+ if (config_exists(var_name, "bandwidth"))
696
+ d->do_io = config_get_boolean_ondemand(var_name, "bandwidth", ddo_io);
697
+ if (config_exists(var_name, "operations"))
698
+ d->do_ops = config_get_boolean_ondemand(var_name, "operations", ddo_ops);
699
+ if (config_exists(var_name, "merged operations"))
700
+ d->do_mops = config_get_boolean_ondemand(var_name, "merged operations", ddo_mops);
701
+ if (config_exists(var_name, "i/o time"))
702
+ d->do_iotime = config_get_boolean_ondemand(var_name, "i/o time", ddo_iotime);
703
+ if (config_exists(var_name, "queued operations"))
704
+ d->do_qops = config_get_boolean_ondemand(var_name, "queued operations", ddo_qops);
705
+ if (config_exists(var_name, "utilization percentage"))
706
+ d->do_util = config_get_boolean_ondemand(var_name, "utilization percentage", ddo_util);
707
+ if (config_exists(var_name, "extended operations"))
708
+ d->do_ext = config_get_boolean_ondemand(var_name, "extended operations", ddo_ext);
709
+ if (config_exists(var_name, "backlog"))
710
+ d->do_backlog = config_get_boolean_ondemand(var_name, "backlog", ddo_backlog);
711
+
712
+ d->do_bcache = ddo_bcache;
713
+
714
+ if (d->device_is_bcache) {
715
+ if (config_exists(var_name, "bcache"))
716
+ d->do_bcache = config_get_boolean_ondemand(var_name, "bcache", ddo_bcache);
717
+ } else {
718
d->do_bcache = 0;
719
+ }
720
}
721
}
722