Title: OpenBSD ttyplot examples | |
Author: Solène | |
Date: 29 July 2019 | |
Tags: openbsd ttyplot | |
Description: | |
I said I will rewrite [ttyplot](https://github.com/tenox7/ttyplot) | |
examples to | |
make them work on OpenBSD. | |
Here they are, but a small notice before: | |
Examples using **systat** will only work for 10000 seconds , or | |
increase that | |
-d parameter, or wrap it in an infinite loop so it restart (but don't | |
loop | |
systat for one run at a time, it needs to start at least once for | |
producing | |
results). | |
The **systat** examples won't work before OpenBSD 6.6, which is not yet | |
released at the time I'm writing this, but it'll work on a -current | |
after 20 july 2019. | |
I made a change to systat so it flush output at every cycle, it was not | |
possible to parse its output in realtime before. | |
Enjoy! | |
## Examples list | |
### ping | |
Replace test.example by the host you want to ping. | |
ping test.example | awk '/ms$/ { print substr($7,6) ; fflush }' | | |
ttyplot -t "ping in ms" | |
### cpu usage | |
vmstat 1 | awk 'NR>2 { print 100-$(NF); fflush(); }' | ttyplot -t | |
"Cpu usage" -s 100 | |
### disk io | |
systat -d 1000 -b iostat 1 | awk '/^sd0/ && NR > 20 { print | |
$2/1024 ; print $3/1024 ; fflush }' | ttyplot -2 -t "Disk read/write in | |
kB/s" | |
### load average 1 minute | |
{ while :; do uptime ; sleep 1 ; done } | awk '{ print | |
substr($8,0,length($8)-1) ; fflush }' | ttyplot -t "load average 1" | |
### load average 5 minutes | |
{ while :; do uptime ; sleep 1 ; done } | awk '{ print | |
substr($9,0,length($9)-1) ; fflush }' | ttyplot -t "load average 5" | |
### load average 15 minutes | |
{ while :; do uptime ; sleep 1 ; done } | awk '{ print $10 ; fflush | |
}' | ttyplot -t "load average 15" | |
### wifi signal strengh | |
Replace iwm0 by your interface name. | |
{ while :; do ifconfig iwm0 | tr ' ' '\n' ; sleep 1 ; done } | awk | |
'/%$/ { print ; fflush }' | ttyplot -t "Wifi strength in %" -s 100 | |
### cpu temperature | |
{ while :; do sysctl -n hw.sensors.cpu0.temp0 ; sleep 1 ; done } | | |
awk '{ print $1 ; fflush }' | ttyplot -t "CPU temperature in °C" | |
### pf state searches rate | |
systat -d 10000 -b pf 1 | awk '/state searches/ { print $4 ; fflush | |
}' | ttyplot -t "PF state searches per second" | |
### pf state insertions rate | |
systat -d 10000 -b pf 1 | awk '/state inserts/ { print $4 ; fflush | |
}' | ttyplot -t "PF state searches per second" | |
### network bandwidth | |
Replace trunk0 by your interface. | |
This is the same command as in my previous article. | |
netstat -b -w 1 -I trunk0 | awk 'NR>3 { print $1/1024; print | |
$2/1024; fflush }' | ttyplot -2 -t "IN/OUT Bandwidth in KB/s" -u "KB/s" | |
-c "#" | |
## Tip | |
You can easily use those examples over ssh for gathering data, and | |
leave the | |
plot locally as in the following example: | |
ssh remote_server "netstat -b -w 1 -I trunk0" | awk 'NR>3 { print | |
$1/1024; print $2/1024; fflush }' | ttyplot -2 -t "IN/OUT Bandwidth in | |
KB/s" -u "KB/s" -c "#" | |
or | |
ssh remote_server "ping test.example" | awk '/ms$/ { print | |
substr($7,6) ; fflush }' | ttyplot -t "ping in ms" |