Спостережуваність

Grafana

Платформа візуалізації: дашборди та алерти поверх Prometheus, Loki, SQL-баз і десятків інших джерел.

Що це

Grafana почалась у 2014 році як форк Kibana для графіків метрик і стала стандартним інструментом дашбордів. Її розвиває компанія Grafana Labs, ядро відкрите під AGPL-3.0 (з 2021 року).

Grafana сама не зберігає метрики: вона підключається до джерел даних (Prometheus, Loki, Tempo, Elasticsearch, PostgreSQL, CloudWatch та інші) і малює панелі з їхніх запитів.

Є алерти, змінні дашбордів, анотації й провізіонінг конфігурації як код. Разом із Loki (логи), Tempo (трейси) і Mimir (метрики) утворює стек LGTM від Grafana Labs.

Коли брати

  • Потрібні дашборди для метрик із Prometheus чи інших джерел.
  • Хочете єдине місце для метрик, логів і трейсів.
  • Потрібні алерти з маршрутизацією в команду.
  • Дашборди як код: провізіонінг через YAML та JSON.

Коли не варто

  • Потрібне сховище даних: Grafana лише візуалізує те, що зберігають інші системи.
  • Ліцензія AGPL заважає вбудувати її в закритий продукт без домовленостей.
  • Потрібна сама збірка й опитування метрик: для цього Prometheus чи OpenTelemetry Collector.

Ключові поняття

Data source
Підключення до бази чи сервісу даних, з якого панелі беруть запити.
Dashboard / Panel
Дашборд складається з панелей: графіків, таблиць, heatmap, stat-плиток.
Variables
Випадні списки на дашборді (середовище, сервіс), що підставляються в запити.
Provisioning
Опис джерел даних і дашбордів у файлах, щоб розгортати Grafana відтворювано.
Alerting
Правила на запитах, що надсилають сповіщення через contact points.

Приклад

Провізіонінг джерел даних Prometheus і Loki.

Питання на співбесіді

  1. 1. Чи зберігає Grafana метрики?

    Ні. Вона лише підключається до джерел даних і візуалізує результати запитів. Метрики лежать у Prometheus, Mimir чи іншій базі.

  2. 2. Навіщо потрібні змінні на дашборді?

    Вони дозволяють один дашборд використовувати для багатьох сервісів чи середовищ: користувач обирає значення, і воно підставляється в усі запити.

  3. 3. Як зробити дашборди відтворюваними?

    Описати джерела й дашборди в провізіонінгу чи зберігати JSON у Git і розгортати автоматично, наприклад через Terraform або Helm. Тоді інстанс легко перестворити.

Питання з банку співбесід

Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).

Розділи платформи