Grafana

Платформа визуализации данных: собирает метрики, журналы и показатели из разных источников в наглядные панели мониторинга с оповещениями.

Grafana — платформа для визуализации и мониторинга с открытым исходным кодом, которую разрабатывает компания Grafana Labs с 2014 года. Она подключается к источникам данных — системам мониторинга, базам данных, хранилищам журналов — и превращает данные в наглядные панели (дашборды): графики, таблицы, индикаторы, карты. Один взгляд на экран — и понятно, все ли в порядке с системой.

Источники данных

Grafana сама данные не собирает, а показывает то, что хранится в других системах:

  • Prometheus и совместимые хранилища — метрики серверов и приложений;
  • Базы данных — PostgreSQL, MySQL, ClickHouse — для бизнес-показателей прямо из рабочих данных;
  • Журналы — Loki, Elasticsearch;
  • Трассировки запросов между сервисами.

На одной панели можно совместить разные источники: например, число ошибок из Prometheus рядом с числом заказов из базы данных.

Из чего состоит дашборд

  • Панели — графики временных рядов, числа с порогами (зеленое, желтое, красное), таблицы, тепловые карты.
  • Переменные — выпадающие списки для выбора сервиса, сервера, окружения: один дашборд работает для всех.
  • Аннотации — отметки событий на графиках, например моментов выпуска новых версий. Сразу видно, после какого обновления выросли ошибки.

Оповещения

Grafana умеет сама проверять условия — «доля ошибок больше 1% в течение пяти минут», «диск заполнен больше чем на 90%» — и отправлять оповещения в почту, мессенджеры и системы дежурств. Хорошее оповещение срабатывает только тогда, когда человеку действительно нужно что-то делать; если сигналов слишком много, на них перестают реагировать.

Как делать хорошие дашборды

  • Сверху — главное. Первый ряд отвечает на вопрос «все ли хорошо»: доступность, ошибки, скорость ответа, ключевые бизнес-показатели.
  • Ниже — детали для поиска причин: ресурсы, базы данных, очереди.
  • Один дашборд — одна аудитория. Дежурному инженеру, руководителю и владельцу продукта нужны разные экраны.
  • Дашборды как код. Описания панелей хранят в Git и разворачивают автоматически — так они не теряются и одинаковы во всех окружениях.

Где используется

Grafana — стандартный инструмент наблюдения за инфраструктурой и приложениями в практике DevOps: от отдельного сервера до кластеров Kubernetes. Ее же используют для показателей выполнения SLA, для бизнес-мониторинга и для данных с устройств интернета вещей. Grafana можно развернуть на своих серверах, что важно для компаний, которые не выносят данные мониторинга за пределы своей инфраструктуры.