Найти в Дзене
KotoJava

Используем Grafana для визуализации данных. Подключаем базу данных, оповещения и строим графики. Часть 1⁠⁠

Grafana это бесплатное решение для визуализации данных. Из коробки она может довольно легко подтянуть данные с логов, баз данных а также приложений. Если понять основные моменты работы с графаной то визуализировать данные на ней довольно удобно. Графана довольно мощный инструмент и имеет множество возможностей. Запускаем Grafana в докере. Используя докер мы можем запустить графану, чтобы это сделать нужно: Содержание файла доступно по этой ссылке. Welcome to Grafana. Через несколько секунд на вашем сервере на 3000 порту будет доступна Grafana. На старте она попросит ввести имя и пароль, введите admin/admin. На первом входе будет необходимо сменить admin пароль. Главная страница будет выглядеть примерно вот так: Прежде чем работать с графаной нам нужны данные. Добавляем DataSource. Один из ключевых моментов - настройка подключения данных. Есть множество вариантов датасурсов (источников данных) а также соответствующего языка запросов. Например наиболее популярными являются: Подключаем Po
Оглавление

Grafana это бесплатное решение для визуализации данных. Из коробки она может довольно легко подтянуть данные с логов, баз данных а также приложений.

Если понять основные моменты работы с графаной то визуализировать данные на ней довольно удобно. Графана довольно мощный инструмент и имеет множество возможностей.

Запускаем Grafana в докере.

Используя докер мы можем запустить графану, чтобы это сделать нужно:

  • Создать файл docker-compose.yaml (содержание будет ниже)
  • Запустить команду docker-compose up -d

Содержание файла доступно по этой ссылке.

Welcome to Grafana.

Через несколько секунд на вашем сервере на 3000 порту будет доступна Grafana. На старте она попросит ввести имя и пароль, введите admin/admin. На первом входе будет необходимо сменить admin пароль. Главная страница будет выглядеть примерно вот так:

-2

Прежде чем работать с графаной нам нужны данные. Добавляем DataSource.

Один из ключевых моментов - настройка подключения данных. Есть множество вариантов датасурсов (источников данных) а также соответствующего языка запросов. Например наиболее популярными являются:

  • Prometheus - датасурс для мониторинга метрик с языком PromQL.
  • Loki - датурс для мониторинга логов с языком LogQL
  • InfluxDb - датасурс для хранения временных рядов (хотя она не ограничена этим) с языком InfluxQl.
  • MySQL/PostgreSQL/MSSQL/.. - датасурсы для работы с реляционными базами данных, идет вместе со знакомым многим SQL.
  • Список датасурсов огромен, ниже я вставлю картинку с опциями.
-3

Подключаем Postgres DataSource.

Для того чтобы не нагружать читателя и сфокусироваться на построении графиков мы подключим самый простой вариант - Postgres базу данных с относительно популярной схемой - сотрудники.

Схема данных используемая для построения графиков:

-4

Для старта базы данных с нужными данными нужно:

  • Создать файл schema.sql и скопировать туда вот эти строки
  • Создать еще один файл docker-compose.yaml (чтобы не было конфликтов можно создать его в отдельной папке вместе с schema.sql и лучше поменять пароль YOUR_COMPLEX_PASSWORD на что то более серьезное).
  • Запустить команду docker-compose up -d

Интегрируем нашу запущенную базу данных добавляя Postgres DataSource.

Для добавления базы данных нужно нажать Home => Connections => Data sources и затем нажать Add new data source

-5

После выбора PostgreSQL введите следующие данные как показано ниже (только подставьте IP и пароль который вы выбрали ранее, если ничего не меняли то YOUR_COMPLEX_PASSWORD )

после ввода данных нажмите Save & test
после ввода данных нажмите Save & test

Строим первый график. Подготовка.

Перед построением графика нужно добавить его в Dashboards. Для этого нажимаем слева Dashboards => New (кнопка справа) => New Dashboard => Add visualization и выбираем созданный ранее PostgresSQL датасурс (ну или как вы его назвали)

-7
-8
-9

Готовим данные для графика.

Теперь мы можем использовать данные из базы для их визуализации. После того как датасурс подключен нам нужно отформатировать данные и "подогонать" их под формат нужный для конкретного графика.

На панели снизу нужно еще раз выбрать PostgresSQL и тогда графана предложит конструктор запросов но честно для SQL запросов мне лично удобнее просто писать текстовый запрос. Чтобы сменить конструктор на текст сменитe Builder => Code (справа сверху)

-10

Последнее замечание перед написанием графиков.

В нашем случае мы используем SQL язык для обработки данных и он достаточен прост для подготовки данных. В случае интеграции Prometheus, Loki подготовка во многом требует знания языка запросов PromQL и LogQL и они не так очевидны для новичка (но довольно гибки).

Пишем первый запрос - график текущих зарплат и даты трудоустройства.

Чтобы построить график зарплат сотрудников и дат их трудоустроства нам нужно сделать следующий запрос:

SELECT hire_date, salary FROM employees LIMIT 50

после этого нужно нажать Run Query. Также можно нажать сверху справа на поле ввода графиков и затем на кнопку Suggestions. Тогда графана автоматически предложит возможные варианты графиков:

-11

Думаю для первой части будет достаточно. Во второй части подробнее рассмотрим работу с данными и как именно "подгонять" данные под нужные форматы для графиков.

Кто интересуется айти темой приглашаю в мой телеграм канал, там вы найдете больше информации а также запись стрима где я строю все эти графики (а также использую локи для аналитики логов).

Всем спасибо за внимание, скоро я выложу вторую часть.