Какой у вас опыт работы с Grafana?

«Какой у вас опыт работы с Grafana?» — вопрос из категории DevOps, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Имею опыт использования Grafana в качестве основной платформы для визуализации метрик и мониторинга инфраструктуры и приложений.

Ключевые направления работы:

  • Создание и настройка дашбордов: Разработка комплексных дашбордов для отслеживания метрик в реальном времени: потребление CPU/RAM, latency, error rate (с использованием Apdex score), трафик и бизнес-показатели.
  • Работа с источниками данных: Интеграция с Prometheus, InfluxDB, Elasticsearch (для логов через Loki) и PostgreSQL.
  • Настройка алертов: Конфигурация правил оповещений на основе пороговых значений (например, CPU > 80% в течение 5 минут) с отправкой уведомлений в Slack, Telegram или PagerDuty.
  • Использование переменных (Templating): Создание интерактивных дашбордов с использованием переменных для фильтрации данных по сервисам, окружениям или хостам.

Пример PromQL-запроса для Grafana, отображающего 95-й перцентиль времени ответа сервиса:

histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, service))

Практический пример алерта в конфигурации Grafana:

- name: HighErrorRate
  rules:
  - alert: ServiceHighErrorRate
    expr: rate(http_requests_total{status=~"5.."}[5m]) / rate(http_requests_total[5m]) > 0.05
    for: 2m
    labels:
      severity: critical
    annotations:
      summary: "Высокий процент ошибок 5xx в сервисе {{ $labels.service }}"