Обзор дашбордов Grafana
Задумывались ли вы когда-нибудь, что такое дашборд? В мире наблюдаемости этот термин используется часто, но что он означает на самом деле? Понятие заимствовано у автомобилей, где приборная панель даёт водителю доступ к элементам управления, необходимым для управления транспортным средством. Аналогично цифровые дашборды помогают нам понимать системы и управлять ими. В этом разделе объясняется, как работают дашборды Grafana, чтобы вы могли легче создавать свои собственные.
На следующем изображении показан пример дашборда Grafana:
Дашборд Grafana состоит из панелей, отображающих данные в виде наглядных графиков, диаграмм и других визуализаций. Эти панели создаются из компонентов, которые преобразуют необработанные данные источника данных в визуализации. Процесс включает прохождение данных через три этапа: плагин, запрос и необязательное преобразование.
На изображении ниже показаны все этапы, после чего следуют подробные пояснения их назначения, использования и значимости.
Источники данных
Источник данных — это любая сущность, состоящая из данных. Это может быть база данных SQL, Grafana Loki, Grafana Mimir или API на основе JSON. Это может быть даже простой файл CSV. Первый шаг при создании визуализации дашборда — выбрать источник данных, содержащий нужные вам данные.
Различия между источниками данных понять бывает сложно, поскольку каждый обладает собственной структурой и требует своих методов запроса. Однако в дашбордах можно увидеть разные источники данных в одном представлении, что упрощает общее понимание данных.
Плагины
Плагин Grafana — это программное обеспечение, добавляющее в Grafana новые возможности. Они бывают разных типов, но сейчас речь пойдёт о плагинах источников данных. Задача плагина источника данных Grafana — принять запрос, на который вы хотите получить ответ, получить данные из источника данных и согласовать различия между моделью данных источника и моделью данных дашбордов Grafana. Он делает это с помощью унифицированной структуры данных, называемой фреймом данных.
Данные, поступающие в плагин из источника данных, могут быть в разных форматах (например, JSON, строки и столбцы или CSV), но когда они покидают плагин и проходят через остальные этапы к визуализации, они всегда представлены фреймами данных.
Сейчас Grafana предлагает широкий выбор из 155 источников данных, которые вы можете использовать. Наиболее часто используемые варианты уже предустановлены и доступны. Прежде чем изучать другие варианты, поищите существующий источник данных, соответствующий вашим требованиям. Grafana постоянно обновляет список, но если подходящий источник данных не найден, можно просмотреть каталог плагинов или создать плагин.
Запросы
Запросы позволяют свести весь объём данных к конкретному набору, обеспечивая более управляемую визуализацию. Они помогают отвечать на вопросы о системных и операционных процессах. Например, компании с интернет-магазином может потребоваться определить число клиентов, которые добавляют товары в корзину. Это можно сделать запросом, агрегирующим метрики доступа к службе корзины и показывающим число обращений пользователей к службе в секунду.
При работе с источниками данных важно понимать, что у каждого из них свой язык запросов. Например, источники данных Prometheus используют PromQL, для логов применяется LogQL, а отдельные базы данных используют SQL. Запрос — основа каждой визуализации в Grafana, и дашборд может использовать целый ряд языков запросов.
На следующем изображении показан редактор запросов, связанный с источником данных Prometheus. Запрос node_cpu_seconds_total написан на PromQL и запрашивает всего одну метрику:
Преобразования
Когда формат данных в визуализации не соответствует вашим требованиям, можно применить преобразование, которое обрабатывает данные, возвращённые запросом. На начальном этапе преобразования могут и не понадобиться, но они мощны и заслуживают упоминания.
Преобразование данных полезно в следующих ситуациях:
- Вы хотите объединить два поля, например склеить
Given NameиFamily Nameв полеFull Name. - У вас есть данные CSV (сплошной текст), и вы хотите преобразовать тип поля (например, разобрать дату или число из строки).
- Вы хотите отфильтровать, соединить, объединить данные или выполнить другие операции в стиле SQL, которые могут не поддерживаться исходным источником данных или языком запросов.
Преобразования находятся на вкладке Transform в диалоге редактирования панели. Выберите нужное преобразование и настройте его. На следующем изображении видно, что преобразований может быть сколько угодно, как и запросов. Например, можно объединить в один конвейер обработки данных цепочку преобразований, которые меняют тип данных, фильтруют результаты, упорядочивают столбцы и сортируют результат. При каждом обновлении дашборда преобразование применяется к последним данным из источника данных.
На следующем изображении показан диалог преобразования:
Панели
После того как данные получены, запрошены и преобразованы, они попадают в панель — последний этап на пути к визуализации Grafana. Панель — это контейнер, отображающий визуализацию и предоставляющий различные элементы управления для работы с ней. В конфигурации панели указывается, как вы хотите видеть данные. Например, с помощью раскрывающегося меню в правом верхнем углу панели задаётся тип визуализации, который вы хотите видеть, — например, столбчатая диаграмма, круговая диаграмма или гистограмма.
Параметры панели позволяют настроить множество аспектов визуализации, и их набор зависит от выбранной визуализации. Панели также содержат запросы, определяющие данные, которые панель визуализирует.
На следующем изображении показана редактируемая панель таблицы: настройки панели с запросом внизу и параметры панели справа. На этом изображении видно, как источник данных, плагин, запрос и панель соединяются вместе.
Выбор наилучшей визуализации зависит от данных и от того, как вы хотите их представить. Чтобы посмотреть примеры дашбордов в одном месте для просмотра и изучения, обратитесь к Grafana Play, где есть демонстрации возможностей и множество примеров.
Заключение
Имея в виду модель «источник данных — плагин — запрос — преобразование — панель», вы теперь сможете разобраться в любом дашборде Grafana и представить, как построить свой собственный.
Создание дашборда Grafana — это процесс, начинающийся с определения требований к дашборду и выявления источников данных, поддерживающих эти требования. Если вы хотите интегрировать специализированную базу данных с дашбордом Grafana, необходимо убедиться, что установлен правильный плагин, чтобы можно было добавить источник данных для использования с этим плагином.
А когда источник данных определён и плагин установлен, можно написать запрос, преобразовать данные и настроить визуализацию под свои нужды.
Эта компонентная архитектура — часть того, что делает Grafana такой мощной и универсальной. Благодаря абстракции плагина источника данных и фрейма данных любой доступный вам источник данных работает по одному и тому же общему подходу.