Grafana: отображение времени пинга
К сожалению Grafana не хранит данные, и сама опрашивать ничего не умеет. Она может лишь красиво нарисовать картинку на основании данных из какого то источника. Посему сначала сделаем скрипт, который ложит данные о пинге в БД MySQL:
1 2 3 4 |
#!/bin/sh time=`ping 192.168.10.100 -c 1 | grep time= | awk '{print $7}' | awk -F '=' '{print $2}'` mysql -ulogin -pparol -e "use m_data;insert into graf_ping (ip,value) values ('192.168.10.100',$time)" |
Структура таблицы БД:
1 2 3 4 5 6 |
CREATE TABLE <code>graf_ping</code> ( id</code> int(11) NOT NULL, dt</code> datetime NOT NULL DEFAULT current_timestamp(), ip</code> text COLLATE utf8_bin NOT NULL, value</code> int(11) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; |
Поместим выполнение этого скрипта например в крон, и далее настроим отображение на стороне Grafana:
Добавим «отсечку» 200мл, «красная линия»:
И чуть сгладим линии:
В результате можно получить нечто такое: