Все предыдущие выпуски серии были про то, откуда берётся сырой материал для графиков — метрики хоста, Postgres, очередей, трейсы, логи. Grafana сама ничего не собирает и почти ничего не хранит — она подключается к уже готовым источникам (Prometheus, Loki, Tempo) и рисует поверх них дашборды и алерты. Логично, что в серии про стек она закрывающая, а не первая — смотреть особо не на что, пока нет источников.

Один дашборд редко нужен только для одного хоста или окружения — для этого есть переменные вида ${var_name}, которые подставляются в запрос вместо жёстко прописанного значения:

rate(node_cpu_seconds_total{instance="$instance", mode="idle"}[5m])

Сверху встаёт выпадающий список хостов, и один и тот же дашборд работает для всего парка серверов без копирования.

Алерты в Grafana строятся поверх тех же запросов к Prometheus/Loki — правило состоит из query-стадии и условия (reduce + math-выражение или classic condition с порогом). Отдельно стоит решить, где правило живёт: Grafana-managed хранит и считает его сама, data source-managed отдаёт эту работу встроенному ruler’у Mimir или Loki — тогда правило переживёт перезапуск самой Grafana.

Дашборды тоже не обязательно тащить руками через UI — provisioning читает JSON из каталога на диске по конфигу вида dashboards.yaml:

apiVersion: 1
providers:
  - name: "default"
    type: file
    options:
      path: /etc/grafana/provisioning/dashboards

Grafana периодически сканирует path и подхватывает изменения — дашборд становится частью репозитория и деплоя, а не ручным экспортом JSON после правок через веб-интерфейс.

На этом цикл про LGTM закрыт — от сырых метрик хоста до визуализации и алертов. Дальше по теме мониторинга пойдут уже отдельные частные темы, не привязанные к одной сквозной серии.

#grafana #lgtm