Correctly visualising the 'diskio' Telegraf plugin


I’m trying to visualise the data we’re getting from ‘diskio’ plugin in Telegraf. I’m struggling to fully understand the documentation for this plugin though.

For example there is the section about read_time and write_time which says:

These values count the number of milliseconds that I/O requests have waited on this block device. If there are multiple I/O requests waiting, these values will increase at a rate greater than 1000/second; for example, if 60 read requests wait for an average of 30 ms, the read_time field will increase by 60*30 = 1800.

I don’t understand what is meant by “a rate greater than 1000/second”. I also don’t know how to normalise this metric, given the number of request requests in the queue isn’t exposed, how is one to calculate the actual average read time for each IO request?

What I’m hoping to be able to visualise for my storage devices is the following:

  • read/write operations
  • read/write bytes
  • read/write latency
  • any read/write queues

I have the first two solved with the following fields:

read & writes:
These values increment when an I/O request completes.

read_bytes & write_bytes :
These values count the number of bytes read from or written to this block device.

However I’m really struggling to accurately visualise the actual latency, how quickly is a device being read or written, is there a queue forming, etc.

Does anyone have some advice for using this plugin?


Hello @Rylon,
Welcome! Are you aware of community templates?
This template uses the diskio input plugin and creates a dashboard for you, maybe try using that as a good starting point?

Hi @Anaisdg yeah we have the System panel enabled in Chronograf, however it only shows bytes read/written, which I have also solved in Grafana. I’m looking for how best to interpret the latency data, and this is for Grafana, no Chronograf.