Используем Grafana для визуализации данных. Часть 3. Заключительная
Запустили графану в докере
Запустили базу данных в докере
Подключили графану к базе
Подготовили данные используя Transform Data
Построили несколько графиков
В этой части мы построим еще три графика:
Gauge (Вроде приборной панели в машине)
GeoMap (Карта)
Stat (Квадраты с цифрами и буквами :D)
Gauge возможно один из самых популярных инструментов.
График позволяет изобразить одно или несколько чисел с подсветкой которая подскажет насколько та или иная метрика входит в допустимые границы. В нашем случае давайте изобразим среднюю зарплату сотрудников. Идея визуализации следующая:
Если средняя зарплата меньше 8000 то мы хотим видеть её зеленым светом
Если средняя зарплата равна или больше 10000 то мы хотим увидеть красный цвет
Также иметь возможность выйти за границы 10000 (до 12000) на тот случай если значение оказалось больше максимального.
Пишем запрос для получения всех зарплат
SELECT salary FROM employees
Преобразуем данные используя Transform Data
(чисто для практики, среднюю зарплату мы могли получить и запросом):
Выбираем Transform Data => Reduce
Mode: Reduce fields
Calculations = Mean (среднее значение).
Выбираем график Gauge
Получаем следующий график (и это не то, что мы хотим):
Чтобы добавить верхнюю границу нужно зайти в настройки графика и выбрать следующие настройки :
Thresholds
Указать Thresholds mode - Absoulte
Нажать Add threshould указать значение 10000 и отметить красным
Нажать Add threshould указать значение 8000 и отметить желтым
Standart Options
Указать Min - 0
Указать Max - 12000
Результатом будет вот такая картина:
Визуализируем данные на карте - GeoMap
Для данного графика в базе нет достаточно данных, поэтому координаты мы сгенерируем сами прямо внутри запроса. Карта богата возможностями, они описаны тут
Запрос длинный поэтому я просто прикреплю его вот по этой ссылке. Если запустить этот запрос и посмотреть данные то получится следующая картина. В нашем случае нам нужны были колонки latitude/longitude те ширина и долгота.
Слегка преобразуем карту:
В настройках Map Layers выберем Tax Label Field - Employee Name
Map view - view: North America, zoom - 4.5
Результатом будет карта:
Карта далека от идеала, я думаю имеет смысл еще поиграться с настройками. Но для первого раза неплохо.
Строим сколько человек работает в каждом департаменте (точнее городе где он расположен) Используем график Stat.
Сначала пишем запрос:
SELECT city, COUNT(employee_id) as employee_count
FROM employees e
JOIN departments d ON e.department_id = d.department_id
JOIN locations l ON d.location_id = l.location_id
GROUP BY city;
Теперь выбираем график - Stat и правим настройки
Value options: fields - employee_count
Stat styles: color mode - background gradient
В результате получаем вот такую картину:
Вместо заключения.
Фокус этой статьи был на работе с графиками. Графана во многом заточена под снятие и визуализацию данных в реальном времени с логов и программ. Если тема зайдет я раскрою больше возможностей. Всем кому интересна разработка добро пожаловать в мой телеграм канал.