GnuPlot in your toolset
06 Jul 2017 in gnuplot
Recently I was asked to investigate a web server issue not responding in regural intervals.
After spending some time digging around in logs and configs, I developed a solution to log the server load at small time intervals in order to have a better view of what's happening.
To do this, create a very simple shell script to store the time and server load:
#!/bin/bash
echo date +%Y%m%d-%H%M%S >> report/uptime.log
uptime >> uptime.log
Then run this script at an interval of 5 secs:
while true; do echo -en . ; bash report.sh ; sleep 5; done
When enough data has gathered, prepare for use with gnuplot:
cat uptime.log \
| sed 'N;s/\n/ /' \
| cut -d' ' -f1,15 \
| sed -s 's/,//g' > uptime.plot
And plot it:
gnuplot -p -e '
set xdata time;
set timefmt "%Y%m%d-%H%M%S";
plot "uptime.plot" using 1:2;
'