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