Как настраивать графики на панели Grafana
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Настройка графиков в Grafana
Grafana - это essential инструмент для мониторинга в DevOps. Я расскажу детально как настраивать графики для эффективного мониторинга инфраструктуры.
Основы Grafana
Grafana состоит из:
- Datasource - подключение к данным (Prometheus, InfluxDB, etc.)
- Dashboard - страница с графиками
- Panel - отдельный график
- Query - запрос к datasource
Создание Dashboard
# 1. Открыть Grafana (обычно http://localhost:3000)
# 2. Меню → Dashboards → New Dashboard
# 3. Сохранить (Save dashboard)
Добавление Panel (График)
Шаг 1: Добавить новый panel
Dashboard → New Panel (кнопка в правом углу)
Это откроет редактор
Шаг 2: Выбрать Datasource
Типично: Prometheus
Выбрать из dropdown списка
Шаг 3: Написать Query (PromQL для Prometheus)
# Простой пример: CPU usage
rate(cpu_usage_seconds_total[5m]) * 100
# С фильтрацией
rate(http_requests_total{job="api"}[5m])
# Несколько metrics
{
cpu: rate(cpu_usage_seconds_total[5m]) * 100,
memory: node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100
}
Типы Panels в Grafana
1. Graph (Line Chart)
- Временные ряды
- Тренды
Options:
- Line interpolation: smooth, linear, step
- Fill opacity: прозрачность под линией
- Show legend: показывать легенду
- Y-axis: min, max, format (bytes, percent)
2. Stat (Числовой показатель)
- Текущее значение
- KPI
Options:
- Value: текущее значение
- Sparkline: микрографик тренда
- Color mode: значение/фон
- Thresholds: цвета по значениям
3. Gauge (Спидометр)
- Текущее значение в диапазоне
- Визуальное представление
Options:
- Min/Max: диапазон
- Thresholds: красный/жёлтый/зелёный
- Unit: %, Celsius, etc.
4. Bar Chart
- Сравнение значений
- Дискретные данные
5. Table
- Табличное представление
- Множество rows/columns
6. Heatmap
- Распределение значений
- Density visualization
Практический пример: CPU Monitoring
Создать panel:
Query A: rate(cpu_usage_seconds_total[5m]) * 100
Label A: CPU Usage %
Query B: node_load1
Label B: Load Average (1m)
Настройки panel:
Panel Type: Graph
Title: CPU Utilization
Unit: percent
Y-axis:
- Min: 0
- Max: 100
- Label: Usage
Thresholds:
- 70: yellow
- 90: red
Legend:
- Show: true
- Position: bottom
- Values: min, max, mean, current
Настройка Alerts
Panel → Alert tab → Create Alert
Pример:
IF cpu_usage > 80% FOR 5min
THEN send notification to Slack
Alert rule:
Evaluate every: 1m
For: 5m
If: cpu_usage > 80
Then: Notification channel
Templating & Variables
Создать variable для гибкости:
Dashboard Settings → Variables → New Variable
Примеры:
- $instance: выбор сервера
- $job: выбор job'а
- $service: выбор сервиса
Использовать в query:
# Вместо hardcoded значения
rate(http_requests_total{instance="$instance"}[5m])
# Multi-select
rate(http_requests_total{job=~"$job"}[5m])
Правила для хороших графиков
✅ Ясный title - понятно что измеряется ✅ Правильный unit - bytes, percent, celsius, etc. ✅ Правильный Y-axis scale - min/max логичны ✅ Легенда - знать что такое каждая линия ✅ Thresholds - красный/жёлтый границы ✅ Средний интервал - не слишком детально, не слишком грубо
Export & Import
# Export dashboard как JSON
Dashboard → Dashboard settings → Export
# Import dashboard
Dashboard → Import → Paste JSON
# Использовать готовые dashboards
https://grafana.com/grafana/dashboards/
# Например: Dashboard ID 1860 (Node Exporter)
Best Practices
- Organize - группировать related metrics
- Use templates - параметризовать dashboards
- Meaningful names - titles, legend labels
- Color consistency - один цвет для одного metric
- Auto-refresh - 30s для production
- Annotations - отмечать deployments, incidents
Вывод
Хорошо настроенные графики в Grafana:
- Помогают быстро identify проблемы
- Показывают тренды
- Enable data-driven decisions
- Essential для SRE культуры