metrics.sh/metrics/disk_io.sh

43 lines
842 B
Bash
Raw Normal View History

2015-03-08 17:51:15 +01:00
#!/bin/sh
init () {
if [ -z $DISK_IO_MOUNTPOINT ]; then
if is_osx; then
DISK_IO_MOUNTPOINT="disk0"
else
DISK_IO_MOUNTPOINT="/dev/vda"
fi
2015-03-08 17:51:15 +01:00
fi
readonly __disk_io_fifo=$TEMP_DIR/disk_io
mkfifo $__disk_io_fifo
__disk_io_bgproc &
}
2015-03-08 17:51:15 +01:00
if is_osx; then
__disk_io_bgproc () {
iostat -K -d -w $INTERVAL $DISK_IO_MOUNTPOINT | while read line; do
echo $line | awk '{ print $3 }' > $__disk_io_fifo
2015-03-08 17:51:15 +01:00
done
}
else
__disk_io_bgproc () {
2015-03-15 10:48:01 +01:00
iostat -y -m -d 1 $DISK_IO_MOUNTPOINT | while read line; do
echo $line | awk '/[0-9.]/{ print $3 }' > $__disk_io_fifo
done
2015-03-08 17:51:15 +01:00
}
fi
2015-03-08 17:51:15 +01:00
collect () {
report $(cat $__disk_io_fifo)
2015-03-08 17:51:15 +01:00
}
terminate () {
if [ ! -z $__disk_io_fifo ] && [ -p $__disk_io_fifo ]; then
rm $__disk_io_fifo
fi
2015-03-08 17:51:15 +01:00
}
docs () {
echo "Disk I/O in MB/s."
echo "\$DISK_IO_MOUNTPOINT="
2015-03-08 17:51:15 +01:00
}