Обзор и первая попытка использования
Grafana (https://grafana.com/) — это платформа с открытым исходным кодом для визуализации, мониторинга и анализа данных.
Установка под разные платформы хорошо описана на сайте, поэтому не буду на ней останавливаться.
Здесь только первая попытка использования Графаны в МДМ без многих ее фич - алертов по выходу мониторящихся данных из заданных пределов (заявлена поддержка телеги и емэйла со скринами), мониторинга системы, mySQL и пр.
Хотелось увидеть исторические данные МДМ в новом интерфейсе и вот, что получилось.
После установки Графана у меня на семерке запустилась сервисом и стартует свой сервер на 3000 порту.
В браузере набираем <адрес_сервера:3000>, вводим admin/admin и мы в Графане.
Для подключения к МДМ используем источник данных mysql, заполняем поля для подключения и жмем сохранить и тест
.
Источник готов.
Дальше создаем дашборд и в ней панель.
Чтобы панель начала работать, она должна получать данные из МДМ. Желательно исторические, но необязательно.
Построитель запросов, встроенный в пункт Qwery, мне не подошел и я использую в нем пункт Edit SQL
.
Туда я вставляю готовый запрос. Кстати, запрос для исторических данных у меня один на все панели примера, от панели к панели там меняются только айдишники свойств - для Температуры одни, для Влажности - другие, и т.д.
Перечень айдишников я беру с помощью запроса в phpAdmin:
SELECT
distinct phistory.`VALUE_ID`,pvalues.property_name as "metric"
FROM phistory
JOIN `pvalues` ON pvalues.id = phistory.`VALUE_ID`
where pvalues.property_name like '%Temperature'
А вот запрос для панели Графаны:
SELECT
$__time(phistory.`ADDED`),
pvalues.property_name as "metric",
(phistory.VALUE+0.0) as value
FROM phistory
JOIN `pvalues` ON pvalues.id = phistory.`VALUE_ID`
WHERE $__timeFilter(phistory.`ADDED`) and value_id in (1261,1262,1264,1272,1282,1291,1331,3709,4148,6208)
ORDER BY phistory.`ADDED`
Меняем для температуры вот эту строку value_id in (1261,1262,1264,1272,1282,1291,1331,3709,4148,6208)
, подставляя в скобки значения из первого запроса.
Знаю, что можно накрутить запрос и получше, но для моей задачи тестирования зашло и так.
$__time
и $__timeFilter
- это макросы Графаны.
Первый переводит столбец к виду UNIX_TIMESTAMP(столбец) as time_sec
и, в принципе, это можно написать и самому, но вот второй превращается в $__timeFilter(column) -> column BETWEEN FROM_UNIXTIME(1492750877) AND FROM_UNIXTIME(1492750877)
, где юникс-время подставляется самой Графаной для выборки интервала времени.
Далее выбираем визуализацию - по умолчанию доступна куча - график, текстовое представление, барграфик, спидометр, таблица, и т.д.
При выборе визуализации открывается ее меню настроек.
Для графика - точка, линия, столбец/ цвет, толщина линии, заливка области, градиент/ стек ...
настройка осей - до двух по У, и одной по Х.
Настройка диапазонов по У и по Х (можно, например, раскрасить выходные или период льготного тарифа)
Все очень очевидно и результаты можно посмотреть сразу после выбора опции до сохранения.
После создания панелей на дашборде можно задать время обновления и диапазон просмотра.
С налета не получилось отобразить страничку в домашних страницах(
ps. Пока открываю в меню через ссылку.
Удалось настроить автоизвещения - алерты. Они устанавливаются в исторических панелях (Там есть пункт с колокольчиком).
Интересно с каналами доставки алертов. Из знакомого вижу PushOver, email и телеграм. PushOver не использую, телеграм не завелся(, но всё решаемо с помощью емэйла.
Пришлось залезть в конфиг Графаны и настроить smtp.
Для связи использую модуль SmtpCatcher, его указал в качестве сервера почты для Графаны. В модуле по приходу письма от Графаны уже скриптом можно отправлять алерт с картинкой в телегу))
Домодедово, Россия
На форуме: xor