properly check if synthetic disk charts should be enabled
Costa Tsaousis (ktsaou) committed
May 21, 2016 at 18:48 UTC
1ec76cd68090537b7653784d9813210d95ac2c24
1 file changed
+6
-3
src/proc_diskstats.c
+6
-3
@@ -598,7 +598,8 @@ int do_proc_diskstats(int update_every, unsigned long long dt) {
598
// only if this is not the first time we run
599
600
if(dt) {
601
- if(d->do_iotime && d->do_ops) {
601
+ if( (d->do_iotime == CONFIG_ONDEMAND_YES || (d->do_iotime == CONFIG_ONDEMAND_ONDEMAND && (readms || writems))) &&
602
+ (d->do_ops == CONFIG_ONDEMAND_YES || (d->do_ops == CONFIG_ONDEMAND_ONDEMAND && (reads || writes)))) {
603
st = rrdset_find_bytype("disk_await", disk);
604
if(!st) {
605
st = rrdset_create("disk_await", disk, NULL, family, "disk.await", "Average Completed I/O Operation Time", "ms per operation", 2005, update_every, RRDSET_TYPE_LINE);
@@ -614,7 +615,8 @@ int do_proc_diskstats(int update_every, unsigned long long dt) {
615
rrdset_done(st);
616
}
617
617
- if(d->do_io && d->do_ops) {
618
+ if( (d->do_io == CONFIG_ONDEMAND_YES || (d->do_io == CONFIG_ONDEMAND_ONDEMAND && (readsectors || writesectors))) &&
619
+ (d->do_ops == CONFIG_ONDEMAND_YES || (d->do_ops == CONFIG_ONDEMAND_ONDEMAND && (reads || writes)))) {
620
st = rrdset_find_bytype("disk_avgsz", disk);
621
if(!st) {
622
st = rrdset_create("disk_avgsz", disk, NULL, family, "disk.avgsz", "Average Completed I/O Operation Bandwidth", "kilobytes per operation", 2006, update_every, RRDSET_TYPE_AREA);
@@ -630,7 +632,8 @@ int do_proc_diskstats(int update_every, unsigned long long dt) {
632
rrdset_done(st);
633
}
634
633
- if(d->do_util && d->do_ops) {
635
+ if( (d->do_util == CONFIG_ONDEMAND_YES || (d->do_util == CONFIG_ONDEMAND_ONDEMAND && busy_ms)) &&
636
+ (d->do_ops == CONFIG_ONDEMAND_YES || (d->do_ops == CONFIG_ONDEMAND_ONDEMAND && (reads || writes)))) {
637
st = rrdset_find_bytype("disk_svctm", disk);
638
if(!st) {
639
st = rrdset_create("disk_svctm", disk, NULL, family, "disk.svctm", "Average Service Time", "ms per operation", 2007, update_every, RRDSET_TYPE_LINE);