Посты с тэгом rrdtool


Обновление rrd задней датой при помощи faketime.


Иногда скрипты, выполнение которых зависит от времени, не срабатывают. Менять время и запускать их повторно или менять код приложения неправильно. Что бы выполнить их задним числом есть утилита faketime.
Установка:
sudo apt-get install faketime

Пример использования:
faketime 'last Friday 5 pm' /bin/date
faketime '2008-12-24 08:15:42' /bin/date

Также работает с wine:
faketime '2006-09-20' wine myprogramm.exe

У меня есть скрипт на питоне который добавляет записи в rrd каждый день. Пересчитаем rrd за последние 3 дня.
faketime '2012-05-05 5 am' python updatemyrrd.p


RRDTool пример использования в python

RRDtool (Round Robin Database). Обеспечивает хранение и отображение данных мониторинга (загрузка каналов, температура и любая другая зависящая от времени последовательность данных, которую можно получить некоторым способом). Задумывалась как повторная, но более правильная реализация MRTG. Объём хранимых данных не увеличивается со временем (ячейки хранения используются циклически). Использование различных функций консолидации данных позволяет охватывать большие интервалы времени без чрезмерного увеличения объема БД за счет снижения разрешающей способности. В отличие от mrtg, программа не упаковывает старые данные самостоятельно, это надо предусматривать при проектировании БД. Сбор информации и генерация HTML-кода также производится с помощью внешних средств. Более мощные средства генерации графиков. Все времена во внутреннем формате Unix (число секунд с 1 января 1970 в UTC). Значения счетчиков могут быть целыми или вещественными числами или специальным значением UNKNOWN. Лицензия - GPL



upd: Режем пики в rrd

Обновления в скрипте Срезаем пики в RRD при помощи python. В предыдущем варианте скрипт получал предельное значение и если любое значение в rrd файле его превышало, то оно обнулялось. Это неудобно когда для каждого datasource нужно задавать свой предел. Ниже пример где несколько строк, в каждой строке 6 значений.

                         1.2531404050e+041.1760614140e+031.0547667362e+010.0000000000e+000.0000000000e+000.0000000000e+00
                         6.2535788107e+036.5077305135e+025.9844172295e+000.0000000000e+000.0000000000e+000.0000000000e+00
                         7.4349123852e+037.2086196285e+026.7862914917e+000.0000000000e+000.0000000000e+000.0000000000e+00
                         6.6044470194e+036.1316221529e+026.2081965076e+000.0000000000e+000.0000000000e+000.0000000000e+00
                         1.6377377735e+042.8213539887e+031.4662221016e+010.0000000000e+000.0000000000e+000.0000000000e+00
  


Срезаем пики в RRD при помощи python

В некоторых случаях на rrd графиках появляются пики, как например после перезагрузки сетевой карты

пики в rrd
Для их удаления нам нужно воспользоваться утилитой dump из rrdtool, которая переводи файл rrd в формат xml. Затем обнулить значение пиков и записать изменения обратно в rrd файл при помощи утилиты restore. На оф. сайте rrdtool можно найт


Красивые графики javascriptRRD + Float


В продолжение статьи Python + Tornado + RRDTool: температура на улице и в серверной рассмотрим как можно рисовать rrd используя только javascript на стороне клиента. Результат будет такой:


Python + Tornado + RRDTool: температура на улице и в серверной


Рассмотрим как можно мониторить температуру при помощи сервера. Алгоритм довольно простой: подключаем датчик температуры к компу, пишем скрипт который снимает данные с датчика, записываем данные и отдаем по запросу пользователю. Результат будет выглядеть так:


Python + Tornado + RRDTool: температура на улице и в серверной

Рассмотрим как можно мониторить температуру при помощи сервера. Алгоритм довольно простой: подключаем датчик температуры к компу, пишем скрипт который снимает данные с датчика, записываем данные и отдаем по запросу пользователю. Результат будет выглядеть так:


Датчик температуры можно выбрать любой. Я сделал для COM порта по схеме "Электронный термометр на DS-18B20". Стоимось вышла около 450р., без