check_drive_io
Checks the disk I/O on the host.
Implementation
| Windows | Linux | FreeBSD | MacOSX |
|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ |
Argument Defaults
| Argument | Default Value |
|---|---|
| warning | utilization > 95 |
| empty-state | 3 (UNKNOWN) |
| empty-syntax | %(status) - No drives found |
| top-syntax | %(status) - %(list) |
| ok-syntax | %(status) - %(list) |
| detail-syntax | %(drive){{ IF label ne ’’ }} (%(label)){{ END }} >%(write_bytes_rate_humanized) <%(read_bytes_rate_humanized) %(utilization)% |
Check Specific Arguments
| Argument | Description |
|---|---|
| drive | Names of the drives to check I/O stats for, e.g. C: or sda. If left empty, all drives are checked |
| lookback | Lookback period for value change rate and utilization calculations, given in seconds. Default: 300 |
Attributes
Filter Keywords
these can be used in filters and thresholds (along with the default attributes):
| Attribute | Description |
|---|---|
| drive | Names of the drives to check I/O stats for. If left empty, it will check all drives. For Windows this is the drive letter. For UNIX it is the logical name of the drive. |
| lookback | Lookback period for which the value change rate and utilization are calculated. |
| read_count | Total number of read operations completed successfully |
| read_count_rate | Number of read operations per second during the lookback period |
| read_bytes | Total number of bytes read from the disk |
| read_bytes_rate | Average bytes read per second during the lookback period |
| read_bytes_rate_humanized | Average bytes read per second during the lookback period, written in humanized format |
| read_time | Total time spent on read operations (milliseconds). |
| write_count | Total number of write operations completed successfully |
| write_count_rate | Number of write operations per second during the lookback period |
| write_bytes | Total number of bytes written to the disk |
| write_bytes_rate | Average bytes written per second during the lookback period |
| write_bytes_rate_humanized | Average bytes written per second during the lookback period, written in humanized format |
| write_time | Total time spent on write operations (milliseconds). |
| label | Label of the drive. Windows does not report this. |
| io_time | Total time during which the disk had at least one active I/O (milliseconds). Windows does not report this. |
| io_time_rate | Change in I/O time per second. Windows does not report this. |
| weighted_io | Measure of both I/O completion time and the number of backlogged requests. Windows does not report this. |
| utilization | Percentage of time the disk was busy (0-100%). Windows does not report this. |
| iops_in_progress | Number of I/O operations currently in flight. Windows does not report this. |
| idle_time | Count of the 100 ns periods the disk was idle. Windows only |
| query_time | The time the performance query was sent. Count of 100 ns periods since the Win32 epoch of 01.01.1601. Windows only |
| queue_depth | The depth of the I/O queue. Windows only. |
| split_count | The cumulative count of I/Os that are associated I/Os. Windows only. |
Examples
Default Check
check_drive_io
OK - C >20.1 MiB/s <1.4 GiB/s 41.2% |'C_read_count'=4791920c;;;0; 'C_read_bytes'=1729039767552c;;;0; 'C_read_time'=119710.31709ms;;;0; 'C_write_count'=2260624c;;;0; 'C_write_bytes'=479384686592c;;;0; 'C_write_time'=89071.67515ms;;;0; 'C
_utilization’=41.2%;95;;0; ‘C_queue_depth’=0;;;0;
Check a UNIX drive and alert if for the last 30 seconds written bytes/second is above 10 Mb/s . Dm-0 is the name of the encrypted volume, it could be nvme0n1 or sdb as well
check_drive_io lookback=30 warn="write_bytes_rate > 10Mb"
OK - dm-0 >1.8 MiB/s/s <815.0 B/s/s 0.0%, sda1 >0 B/s/s <0 B/s/s 0.0% |'dm-0_read_count'=396738362c;;;0; 'dm-0_read_bytes'=33871348975616c;;;0; 'dm-0_read_time'=2990729692ms;;;0; 'dm-0_write_count'=624158141c;;;0; 'dm-0_write_bytes'=36083702012416c;;;0; 'dm-0_write_time'=1412729952ms;;;0; 'dm-0_utilization'=0%;95;;0; 'dm-0_io_time'=738627512ms;;;0; 'dm-0_weighted_io'=108492348;;;0; 'dm-0_iops_in_progress'=0;;;0; 'sda1_read_count'=3178c;;;0; 'sda1_read_bytes'=67430400c;;;0; 'sda1_read_time'=13572ms;;;0; 'sda1_write_count'=3193c;;;0; 'sda1_write_bytes'=282012672c;;;0; 'sda1_write_time'=9446ms;;;0; 'sda1_utilization'=0%;95;;0; 'sda1_io_time'=10832ms;;;0; 'sda1_weighted_io'=23019;;;0; 'sda1_iops_in_progress'=0;;;0;
Example using check_snclient and Naemon
Naemon Config
define command{
command_name check_snclient
command_line $USER1$/check_snclient -k -p 'your-password' -u 'https://$HOSTADDRESS$:8443' $ARG1$ $ARG2$
}
define service {
host_name testhost
service_description check_drive_io
use generic-service
check_command check_snclient!check_drive_io!
}