Как настроить графики на панели Grafana?

«Как настроить графики на панели Grafana?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Настройка графиков в Grafana — это рутинная часть моей работы по визуализации метрик. Я делаю это так:

  1. Создание панели: В нужном дашборде нажимаю "Add panel" → "Add new panel".
  2. Выбор источника данных: В секции Query выбираю соответствующий бэкенд, например, Prometheus для метрик Kubernetes или Loki для логов.
  3. Написание запроса:
    • Для Prometheus указываю метрику и необходимые фильтры по лейблам: rate(container_cpu_usage_seconds_total{namespace="production"}[5m]).
    • Использую агрегационные функции (sum() by (pod), avg()) для группировки данных.
    • Для Loki пишу LogQL-запрос: {app="api-gateway"} |= "error" | logfmt | rate > 0.1.
  4. Настройка визуализации:
    • В Panel options выбираю подходящий тип визуализации: Time series для графиков, Stat для единичных значений, Bar gauge.
    • Настраиваю оси, легенду (Legend), пороги и цветовую палитру в Standard options.
  5. Добавление контекста и алертинга:
    • В Alert создаю правило уведомления, например, если значение CPU превышает 80% в течение 2 минут.
    • Добавляю аннотации (Annotations) для отметки событий деплоя или инцидентов прямо на графике.

Пример готовой панели для мониторинга запросов:

sum(rate(http_requests_total{job="web-service", code!~"5.."}[5m])) / sum(rate(http_requests_total{job="web-service"}[5m])) * 100

Этот запрос вычисляет процент успешных (не 5xx) HTTP-запросов. После всех настроек сохраняю панель, давая ей понятное имя.