Графики для Mjd в базе rrdtool + drraw интерфейс(perl)

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
Enic
Сообщения: 6
Зарегистрирован: Вс июл 19, 2015 1:29 pm
Благодарил (а): 4 раза
Поблагодарили: 4 раза

Графики для Mjd в базе rrdtool + drraw интерфейс(perl)

Сообщение Enic » Вс ноя 08, 2015 4:43 pm

Добрый день уважаемое сообщество SmartLiving.ru,
хочу поделиться своими наработками в области графического отображения
информации с помощью связки rrdtool + drraw (perl)

Все нижеследующее было установлено, подправлено и протестировано в
Linux raspberrypi 4.1.7-v7+ #817 SMP PREEMPT Sat Sep 19 15:32:00 BST 2015 armv7l GNU/Linux

Подготовка:

Код: Выделить всё

pi@raspberrypi ~ $ sudo apt-get install rrdtool
pi@raspberrypi ~ $ sudo apt-get install librrds-perl
pi@raspberrypi ~ $ sudo cpan App::cpanminus
pi@raspberrypi ~ $ sudo cpanm CGI
pi@raspberrypi ~ $ sudo cpanm CGI::Carp
pi@raspberrypi ~ $ sudo cpanm Config
pi@raspberrypi ~ $ sudo cpanm Fcntl
pi@raspberrypi ~ $ sudo cpanm File::Basename
pi@raspberrypi ~ $ sudo cpanm File::Find
pi@raspberrypi ~ $ sudo cpanm Digest::MD5
проверить корректность установки модуля для RRD:

Код: Выделить всё

sudo perl -MRRDs -le 'print q(ok!)'
 
создать папки и назначить владельца, группу, права:

Код: Выделить всё

pi@raspberrypi ~ $ ls -l /var/drraw/
total 12
drwxr-xr-x 2 www-data www-data 4096 Nov  8 15:40 data
drwxr-xr-x 2 www-data www-data 4096 Nov  8 14:34 rrd
drwxr-xr-x 2 www-data www-data 4096 Nov  8 15:40 tmp
распаковать содержимое архива drraw_rpi.tgz в папку:

Код: Выделить всё

pi@raspberrypi ~ $ tar xzvf drraw_rpi.tgz
pi@raspberrypi ~ $ ls -l /usr/lib/cgi-bin/
total 7592
-rw-r--r-- 1 pi   pi     12286 Nov  8 15:37 drraw.conf
-rwxr-xr-x 1 pi   pi    198475 Nov  7 17:51 drraw.pl
в случае, если ваша TZ отлична от Europe/Minsk, поправить в drraw.conf

Импортировать класс и три объекта-графика из файла rrdgraph_class.zip

Создание/обновление файлов rrd-баз осуществляется посредством вызова вида:

Код: Выделить всё

callMethod("0222.update",array("value"=>$this->getProperty('temp')));
 
данный вызов удобно повесить на обработчик tempChanged объекта класса tempSensors

Файл rrd базы создается при первом вызове метода update автоматически

Вызов интерфейса работы с графиками
http://<ваш_IP_адрес>/cgi-bin/drraw.pl

При желании увидеть графики сразу, можно распактовать архив drraw_samples.tgz

Код: Выделить всё

pi@raspberrypi ~/drraw $ ls -l /var/drraw/
total 12
drwxr-xr-x 2 www-data www-data 4096 Nov  8 16:25 data
drwxr-xr-x 2 www-data www-data 4096 Nov  8 14:34 rrd
drwxr-xr-x 2 www-data www-data 4096 Nov  8 16:33 tmp
Вложения
Graph_Sample.png
Пример графика
Graph_Sample.png (21.58 КБ) 4704 просмотра
drraw_samples.tgz
При желании увидеть графики сразу, можно распактовать архив drraw_samples.tgz
(20.41 КБ) 654 скачивания
rrdgraph_class.zip
Импортировать класс и три объекта-графика из файла
(3.19 КБ) 212 скачиваний
drraw_rpi.tgz
распаковать содержимое архива drraw_rpi.tgz в папку /usr/lib/cgi-bin/
(43.45 КБ) 629 скачиваний
За это сообщение автора Enic поблагодарил:
ABola (Ср дек 16, 2015 5:22 pm)
Рейтинг: 1.16%
BR, Сергей
Raspberry Pi 2 1 GB, kodi, mt1132
connect, project
Ko/|xo3HUk
Сообщения: 160
Зарегистрирован: Ср окт 07, 2015 9:36 am
Благодарил (а): 51 раз
Поблагодарили: 27 раз

Re: Графики для Mjd в базе rrdtool + drraw интерфейс(perl)

Сообщение Ko/|xo3HUk » Чт дек 10, 2015 10:11 am

Добрый день!
Я так понял - БД пишется сразу на SD? Не боитесь за ресурс SD-карточки? Не планируете сделать RRD в оперативку в /tmp и периодическим сбросом на SD? (так, как это реализовано с mysql)
Текущий сервер: Ноутбук: HP Probook 4515s (без монитора). ОС: Debian GNU/Linux 8.6 (jessie)
Предыдущий сервер: Raspberry Pi 2B. ОС: Raspbian (jessie)
ABola
Сообщения: 2
Зарегистрирован: Вс фев 01, 2015 6:05 pm
Благодарил (а): 35 раз
Поблагодарили: 0

Re: Графики для Mjd в базе rrdtool + drraw интерфейс(perl)

Сообщение ABola » Ср дек 16, 2015 5:21 pm

Добрый день!

Подскажите пожалуйста начальные значения для свойств (применительно к температуре):
dataset
min
max
CF
DST
RRA

Спасибо!
Ответить