Документацияbreadcrumb arrow Grafanabreadcrumb arrow Документация GlaberGraphbreadcrumb arrow Учебные материалыbreadcrumb arrow Начало работы с Grafana Alerting — связывание оповещений с визуализациями

Это учебное руководство является продолжением руководства Начало работы с Grafana Alerting — маршрутизация оповещений с помощью динамических меток.

В этом учебном руководстве вы научитесь:

  • Связывать правила оповещения с панелями временных рядов для лучшей визуализации.
  • Просматривать аннотации оповещений непосредственно на дашбордах для лучшего контекста.
  • Писать запросы Prometheus.

Перед началом работы

  • Интерактивная среда обучения

  • Grafana OSS

    • Если вы решили запустить стек Grafana локально, убедитесь, что у вас установлены следующие приложения:
      • Docker Compose (входит в состав Docker for Desktop для macOS и Windows)
      • Git

Настройка стека Grafana

Чтобы наблюдать данные с помощью стека Grafana, загрузите и запустите следующие файлы.

  1. Клонируйте репозиторий среды учебного руководства.

    Bash
    git clone https://github.com/tonypowa/grafana-prometheus-alerting-demo.git
  2. Перейдите в каталог, в который вы клонировали репозиторий:

    Bash
    cd grafana-prometheus-alerting-demo
  3. Соберите стек Grafana:

    docker compose build
  4. Запустите контейнеры:

    docker compose up -d

    При первом запуске docker compose up -d Docker загружает все необходимые для учебного руководства ресурсы. В зависимости от скорости вашего интернет-соединения это может занять несколько минут.

Note

Если на вашей системе уже запущены Grafana, Loki или Prometheus, вы можете увидеть ошибки, потому что Docker-образ пытается использовать порты, которые уже заняты вашими локальными установками. Если это так, остановите службы, а затем снова выполните команду.

Вариант использования: мониторинг и оповещение о работоспособности системы с помощью Prometheus и Grafana

В этом варианте использования мы сосредоточимся на мониторинге использования CPU, памяти и диска системы в рамках настройки мониторинга. Демонстрационное приложение запускает стек, включающий Python-скрипт для имитации метрик, которые Grafana собирает и визуализирует как визуализацию временных рядов.

Скрипт имитирует случайные значения использования CPU и памяти (от 10% до 100%) каждые 10 секунд и предоставляет их как метрики Prometheus.

Цель

Вы создадите визуализацию временных рядов для мониторинга использования CPU и памяти, определите правила оповещения с пороговыми условиями и свяжете эти оповещения с вашими дашбордами для отображения аннотаций в реальном времени при превышении порогов.

Шаг 1: создание визуализации для мониторинга метрик

Чтобы отслеживать эти метрики, вы можете настроить визуализацию для использования CPU и потребления памяти. Это упростит просмотр того, как работает система.

Визуализация временных рядов поддерживает правила оповещения для предоставления большего контекста в виде аннотаций и состояния правила оповещения. Выполните следующие действия, чтобы создать визуализацию для мониторинга метрик приложения.

  1. Войдите в Grafana:

    • Перейдите на http://localhost:3000, где должна быть запущена Grafana.
    • Имя пользователя и пароль: admin.
  2. Создайте панель временных рядов:

    • Перейдите в Dashboards.
    • Нажмите + Create dashboard.
    • Нажмите + Add visualization.
    • Выберите Prometheus в качестве источника данных (предоставляется с демонстрацией).
    • Введите заголовок для вашей панели, например, CPU and Memory Usage.
  3. Добавьте запросы для метрик:

    • В области запроса скопируйте и вставьте следующий запрос PromQL:

      переключитесь в режим Code, если он ещё не выбран

      promql
      flask_app_cpu_usage{instance="flask-prod:5000"}
    • Нажмите Run queries.

    Этот запрос должен отображать имитированные данные об использовании CPU для среды prod.

  4. Добавьте запрос на использование памяти:

    • Нажмите + Add query.

    • В области запроса вставьте следующий запрос PromQL:

      promql
      flask_app_memory_usage{instance="flask-prod:5000"}
    Панель временных рядов, отображающая метрики использования CPU и памяти в производственной среде.
    Панель временных рядов, отображающая метрики использования CPU и памяти в производственной среде.
  5. Нажмите Save dashboard. Назовите его: cpu-and-memory-metrics.

Наша панель временных рядов готова. Не стесняйтесь комбинировать метрики с метками, такими как flask_app_cpu_usage{instance="flask-staging:5000"}, или другими метками, например deployment.

Шаг 2: создание правил оповещения

Выполните следующие действия, чтобы вручную создать правила оповещения и связать их с визуализацией.

Создание правила оповещения для использования CPU

  1. Перейдите в Alerts & IRM > Alerting > Alert rules из бокового меню Grafana.
  2. Нажмите + New alert rule, чтобы создать новое оповещение.

Ввод имени правила оповещения

Сделайте его коротким и описательным, так как оно будет отображаться в вашем уведомлении об оповещении. Например, cpu-usage.

Определение запроса и условия оповещения

  1. Выберите источник данных Prometheus в раскрывающемся меню.

  2. В разделе запроса введите следующий запрос:

    переключитесь в режим Code, если он ещё не выбран

    flask_app_cpu_usage{instance="flask-prod:5000"}
  3. Alert condition

    Запрос возвращает использование CPU приложения Flask в производственной среде. В данном случае использование составляет 86.01%, что превышает настроенный порог 75%, вызывая срабатывание оповещения.

Добавление папок и меток

  1. В поле Folder нажмите + New folder и введите имя. Например: system-metrics. Эта папка будет содержать наши правила оповещения.

Настройка поведения оценки

  1. Нажмите + New evaluation group. Назовите её system-usage.
  2. Выберите Evaluation interval (как часто будет оцениваться оповещение). Выберите 1m.
  3. Установите pending period равным 0s (None), чтобы правило оповещения срабатывало сразу после выполнения условия (это минимизирует время ожидания для демонстрации).
  4. Установите Keep firing for равным 0s, чтобы оповещение прекращало срабатывать сразу после того, как условие перестало выполняться.

Настройка уведомлений

  • Выберите точку контакта. Если у вас нет точек контакта, добавьте точку контакта.

    Для быстрой проверки вы можете использовать публичный webhook с webhook.site, чтобы перехватывать и проверять уведомления об оповещениях. Если вы выберете этот метод, выберите Webhook в раскрывающемся меню в точках контакта.

Настройка сообщения уведомления

Чтобы связать это правило оповещения с нашей визуализацией, нажмите Link dashboard and panel.

  • Выберите папку, содержащую дашборд. В данном случае: system-metrics.
  • Выберите визуализацию cpu-and-memory-metrics.
  • Нажмите confirm.

Вы успешно связали это правило оповещения с вашей визуализацией!

Когда использование CPU превышает заданный порог, на графике должна появиться аннотация, отмечающая событие. Аналогично, когда оповещение разрешается, добавляется ещё одна аннотация, указывающая момент возврата к норме.

Попробуйте добавить второе правило оповещения, используя метрику использования памяти (flask_app_memory_usage{instance="flask-prod:5000"}), чтобы увидеть, как комбинирование нескольких оповещений может улучшить ваш дашборд.

Проверьте, как выглядит ваш дашборд теперь, когда ваше оповещение связано с панелью вашего дашборда.

Шаг 3: визуализация метрик и аннотаций оповещений

После того как правила оповещения связаны с визуализацией, они должны отображаться как индикаторы работоспособности (цветные значки сердец: красное сердце, когда оповещение находится в состоянии Alerting, и зелёное сердце, когда оно в состоянии Normal) на связанной панели. Кроме того, аннотации предоставляют полезный контекст, такой как время срабатывания оповещения.

Панель временных рядов с индикаторами работоспособности и аннотациями.
Панель временных рядов с индикаторами работоспособности и аннотациями.

Шаг 4: получение уведомлений

Наконец, в рамках процесса оповещения вы должны получать уведомления в связанной точке контакта. Если вы получаете оповещения по электронной почте, шаблон электронной почты по умолчанию включает две кнопки:

  • View dashboard: ссылка на дашборд, содержащий панель с оповещением.

  • View panel: прямая ссылка на отдельную панель, на которой сработало оповещение.

Уведомление об оповещении со ссылками на панель и дашборд.
Уведомление об оповещении со ссылками на панель и дашборд.

Нажатие на любую кнопку открывает Grafana с заранее применённым временным диапазоном, относящимся к оповещению.

По умолчанию этот URL включает параметры запроса from и to, отражающие временное окно вокруг события оповещения (за час до и после оповещения). Это помогает вам попасть непосредственно во временное окно, в котором произошло оповещение, что упрощает анализ произошедшего.

Если вы хотите определить более точный временной диапазон, вы можете настроить свои уведомления с помощью шаблона уведомления. С помощью шаблона вы можете явно задать значения from и to для более точного контроля над тем, что увидят пользователи, перейдя по ссылке на дашборд. Итоговый URL формируется с использованием пользовательской аннотации (например, MyDashboardURL) вместе с параметрами from и to, которые вычисляются в шаблоне уведомления.

Заключение

Вы связали правила оповещения на основе Prometheus с вашими визуализациями Grafana, предоставив вашим дашбордам контекст в реальном времени с аннотациями оповещений и индикаторами работоспособности. Визуализируя оповещения вместе с метриками, реагирующие специалисты могут быстро понять, что происходит и когда. Вы также увидели, как уведомления об оповещениях могут включать прямые ссылки на затронутый дашборд или панель, помогая командам переходить прямо в нужное временное окно для более быстрого устранения неполадок.

Есть отзывы или идеи по улучшению этого учебного руководства? Сообщите нам.