Я тоже в свое время над этим думал. Мне надо было сделать запрос на http сервер и получить время ответа. И показать график.
Решил написать сам:
responseTime.sh:
#!/bin/bash
url=$1
output=$2
date=/home/centos/statistics/`date +"%Y%m%d"`
if [! -d "$date"]; then
mkdir $date
fi
curl -o /dev/null -w "%{time_total}\n" -s $url \
| awk -v url=$url '{printf "%s %s %s\n",$0,strftime("%Y%m%d-%T"),url;}' \
>> $date/$output
Здесь мы дернули, и записали в файлик строчку вида:
0.111 20131021-17:13:13 http://ya.ru
Результат записей в файлик я передавал в gnuplot через скрипт:
#drawplot.sh
#!/bin/bash
today='date +"%Y%m%d"'
server="~/statistics/"$today"/"$1
awk -v server="$server" -v today="$today" \
'{gsub(/###server###/,server);gsub(/###server###/,server);gsub(/###today###/,today)};1' ~/statistics/plot.conf \
| gnuplot
#plot.conf
set terminal png size 640,480
set xdata time
set timefmt "%Y%m%d-%H:%M:%S"
set output "###server###.png"
set xrange ["###today###-00:00:00":"###today###:-23:59:59"]
set format x "%H:%M"
set yrange [0:10]
set ytics 1
set grid
plot "###server###" using 2:1 smooth unique
После этого появлялась или обновлялась .png картинка с графиком, ее можно было вставлять в страницу, если надо (для этого был отдельный скрипт :) ).
Запускалось по крону:
#crontab ex.
*/5 * * * * ~/statistics/responseTime.sh "http://ya.ru" yandex &> /dev/null && ~/statistics/drawplot.sh yandex &> /dev/null;
Сделано естественно на коленке с синей изолентой. Вы можете также например вставить посылку почты, если время curl будет больше определенного порога.