iowatchd 0.4.0

Monitors disk IO usage and logs which processes are consuming it
# iowatchd configuration (key=value format, '#' starts a comment).
# Installed at /etc/iowatchd.conf. All keys are optional.
# Overrides can also be dropped into /etc/iowatchd.conf.d/*.conf (read in
# alphabetical order, after this file).

# Block device to monitor (name as in /proc/diskstats, e.g. sda, nvme0n1).
# "auto" detects the physical disk that holds the root partition (/).
device = auto

# IO usage (%) above which processes are logged.
threshold = 80

# IO usage (%) below which IO is considered back to normal (hysteresis).
clear_threshold = 70

# Interval between samples, in seconds.
interval = 2

# Consecutive samples above the threshold before triggering (ignores short spikes).
trigger_samples = 2

# Window (seconds) used to measure per-process IO when the threshold is exceeded.
process_window = 1

# Number of processes listed in each report.
top_n = 5

# Minimum interval (seconds) between reports while IO stays high.
cooldown = 10

# Log file (in addition to journald). Leave empty to disable.
log_file = /var/log/iowatchd.log

# Maximum file size (MB) before rotating to <file>.1.
# Use 0 to disable built-in rotation (e.g. when logrotate manages the file).
log_max_mb = 5

# Shell command run on every alert and when IO returns to normal. It gets
# IOWATCHD_EVENT (alert|normal), IOWATCHD_DEVICE, IOWATCHD_UTIL and
# IOWATCHD_MESSAGE in its environment. It must not contain '#'.
# Example: notify_command = logger -t iowatchd "$IOWATCHD_MESSAGE"
notify_command =

# Log line format: "text" (default) or "json" (one JSON object per line).
log_format = text