Спостережуваність
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.
Приклад
Питання на співбесіді
1. Чи зберігає Grafana метрики?
Ні. Вона лише підключається до джерел даних і візуалізує результати запитів. Метрики лежать у Prometheus, Mimir чи іншій базі.
2. Навіщо потрібні змінні на дашборді?
Вони дозволяють один дашборд використовувати для багатьох сервісів чи середовищ: користувач обирає значення, і воно підставляється в усі запити.
3. Як зробити дашборди відтворюваними?
Описати джерела й дашборди в провізіонінгу чи зберігати JSON у Git і розгортати автоматично, наприклад через Terraform або Helm. Тоді інстанс легко перестворити.
Питання з банку співбесід
- Через місяць запускається нове API оформлення замовлення, і до запуску тобі треба налаштувати дашборди та чергування. Які метрики збираєш для сервісу, які для ресурсів, яке SLO пропонуєш і що саме будить людину вночі?MiddleDevOps
- У команди 200 алертів на день, усе червоне, і на справжній інцидент ніхто не зреагував 40 хвилин. Що робиш?MiddleDevOps
- SLO 99,9 % за 30 днів. Алерт
error_ratio > 0.001 for 5mбудить вночі через кожну дрібницю. Як переробити?SeniorDevOps - О 3 ночі алерт: 30 % запитів повертають 500, ти на чергуванні. Твої перші дії?SeniorDevOps
Схожі технології
- PrometheusСистема моніторингу з базою часових рядів: збирає метрики pull-моделлю і дає мову запитів PromQL.
- Grafana LokiСистема зберігання логів, що індексує лише мітки, як Prometheus, і тому коштує менше за повнотекстові рішення.
- OpenTelemetryЄдиний відкритий стандарт і набір SDK для трейсів, метрик і логів, незалежний від постачальника.
- ELK StackНабір Elasticsearch, Logstash і Kibana для збору, повнотекстового пошуку та візуалізації логів і подій.
- KubernetesKubernetes це система оркестрації контейнерів: розгортає, масштабує та лікує застосунки на кластері серверів.
- DatadogКомерційна SaaS-платформа спостережуваності: метрики, логи, трейси, APM і безпека в одному місці.
Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).