# Questions on system.diskio latency metrics

**URL:** <https://discuss.elastic.co/t/questions-on-system-diskio-latency-metrics/225459>\
**Category:** Beats\
**Tags:** metricbeat\
**Created:** [March 27, 2020, 7:13pm UTC](https://discuss.elastic.co/t/questions-on-system-diskio-latency-metrics/225459 "2020-03-27T19:13:51Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![jkarras](https://avatars.discourse-cdn.com/v4/letter/j/919ad9/32.png) [@jkarras](https://discuss.elastic.co/u/jkarras)\
**Post date:** [March 27, 2020, 7:13pm UTC](https://discuss.elastic.co/t/questions-on-system-diskio-latency-metrics/225459/1 "2020-03-27T19:13:51Z")

</div>

Hello, I am trying to get a better understanding of the disk io metrics below.  
Included are the definitions for each per the Elastic documentation online.

system.diskio.read.time - total number of milliseconds spent by all reads  
system.diskio.write.time - total number of milliseconds spent by all writes  
system.diskio.iostat.await - average time spent for requests issued to the device to be served  
system.diskio.iostat.service\_time - average service time (in milliseconds) for I/O requests that were issued to the device

Q1: Is system.diskio.io.time equal to the average of system.diskio.read.time and system.diskio.write.time for a given time interval on a given device?

Q2: How does system.diskio.io.time relate to system.diskio.iostat.await?

Q3: Which metric is best to use to represent overall disk latencies - both reads and writes?

Thank you.

---

<div class="post-metadata">

**Author:** ![Alex\_Kristiansen](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/alex_kristiansen/32/46086_2.png) [@Alex\_Kristiansen](https://discuss.elastic.co/u/Alex_Kristiansen)\
**Post date:** [March 30, 2020, 4:54pm UTC](https://discuss.elastic.co/t/questions-on-system-diskio-latency-metrics/225459/2 "2020-03-30T16:54:32Z")

</div>

1. According to the [kernel docs](https://www.kernel.org/doc/Documentation/iostats.txt), `time` is "number of milliseconds spent doing I/Os". Based on my understanding, these fields measure I/O time differently, so `read.time` + `write.time` != `io.time`. There's a good summary [here.](https://serverfault.com/questions/862334/interpreting-read-write-and-total-io-time-in-proc-diskstats).

2. `time` is time spent in I/O operations, `await` is time spent waiting for I/O requests to be serviced. In theory, these two metrics should have no overlap.

3. Personally, I would use `diskio.read` and `diskio.write` as they would provide a fairly realistic measure individual IO times, but it depends on what your use case is.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [April 27, 2020, 4:54pm UTC](https://discuss.elastic.co/t/questions-on-system-diskio-latency-metrics/225459/3 "2020-04-27T16:54:32Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
