X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fdisk.c;h=0aac2db3b208b29cf69b65ccf6afab2778ade643;hb=b5a33aab585aabef83c79bf3261092ca901edf9c;hp=bafc82e042274d9f7da4eadca94d48ad6543dc90;hpb=50345eec33951b964e2829e83c30399b71f2baba;p=collectd.git diff --git a/src/disk.c b/src/disk.c index bafc82e0..0aac2db3 100644 --- a/src/disk.c +++ b/src/disk.c @@ -106,6 +106,10 @@ typedef struct diskstats derive_t avg_read_time; derive_t avg_write_time; + _Bool has_merged; + _Bool has_in_progress; + _Bool has_io_time; + struct diskstats *next; } diskstats_t; @@ -830,6 +834,16 @@ static int disk_read (void) ds->read_time = read_time; ds->write_ops = write_ops; ds->write_time = write_time; + + if (read_merged || write_merged) + ds->has_merged = 1; + + if (in_progress) + ds->has_in_progress = 1; + + if (io_time) + ds->has_io_time = 1; + } /* if (is_disk) */ /* Don't write to the RRDs if we've just started.. */ @@ -871,10 +885,13 @@ static int disk_read (void) if (is_disk) { - disk_submit (output_name, "disk_merged", + if (ds->has_merged) + disk_submit (output_name, "disk_merged", read_merged, write_merged); - submit_in_progress (output_name, in_progress); - submit_io_time (output_name, io_time, weighted_time); + if (ds->has_in_progress) + submit_in_progress (output_name, in_progress); + if (ds->has_io_time) + submit_io_time (output_name, io_time, weighted_time); } /* if (is_disk) */ #if HAVE_LIBUDEV