Оповещения Elasticsearch
Вы можете использовать Grafana Alerting вместе с Elasticsearch, чтобы создавать оповещения на основе данных Elasticsearch. Это позволяет отслеживать метрики, обнаруживать аномалии и получать уведомления при выполнении определённых условий.
Общую информацию о Grafana Alerting см. в разделе Grafana Alerting.
Прежде чем начать
Прежде чем создавать оповещения с помощью Elasticsearch, убедитесь, что у вас есть:
- Источник данных Elasticsearch, настроенный в Grafana
- Соответствующие права на создание правил оповещений
- Понимание метрик, которые вы хотите отслеживать
Поддерживаемые типы запросов
Оповещения Elasticsearch лучше всего работают с запросами метрик, возвращающими данные временных рядов. Чтобы создать корректный запрос для оповещения:
- Используйте Date histogram в качестве последней bucket-агрегации (в разделе Group by)
- Выберите подходящие metric-агрегации (Count, Average, Sum, Min, Max и т. д.)
Запросы, возвращающие данные временных рядов, позволяют Grafana вычислять значения с течением времени и срабатывать оповещениям при пересечении порогов.
Совместимость типов запросов с оповещениями
Создание правила оповещения
Чтобы создать правило оповещения с помощью Elasticsearch:
- Перейдите в Alerting > Alert rules.
- Нажмите New alert rule.
- Введите имя правила оповещения.
- Выберите ваш источник данных Elasticsearch.
- Постройте запрос с помощью редактора запросов:
- Добавьте metric-агрегации (например, Average, Count, Sum)
- Добавьте Date histogram в разделе Group by
- При необходимости добавьте фильтры с помощью синтаксиса запросов Lucene
- Настройте условие оповещения (например, когда среднее значение превышает порог).
- Задайте интервал вычисления и период ожидания (pending period).
- Настройте уведомления и метки (labels).
- Нажмите Save rule.
Подробные инструкции см. в разделе Создание правила оповещения, управляемого Grafana.
Примеры запросов для оповещений
Следующие примеры показывают типичные сценарии оповещений с Elasticsearch.
Оповещение о большом числе ошибок
Отслеживайте количество записей журнала уровня error:
- Запрос:
level:error - Метрика: Count
- Группировка: Date histogram (интервал: 1m)
- Условие: когда количество превышает 100
Оповещение о среднем времени отклика
Отслеживайте время отклика API:
- Запрос:
type:api_request - Метрика: Average по полю
response_time - Группировка: Date histogram (интервал: 5m)
- Условие: когда среднее значение превышает 500 (миллисекунд)
Оповещение о падении числа уникальных пользователей
Обнаруживайте снижение числа активных пользователей:
- Запрос:
*(все документы) - Метрика: Unique count по полю
user_id - Группировка: Date histogram (интервал: 1h)
- Условие: когда число уникальных значений становится меньше 100
Ограничения
При использовании Elasticsearch с Grafana Alerting учитывайте следующие ограничения.
Переменные шаблона не поддерживаются
Запросы оповещений не могут содержать переменные шаблона. Grafana вычисляет правила оповещений на бэкенде без контекста дашборда, поэтому переменные вроде $hostname или $environment не будут разрешены.
Если ваш запрос дашборда использует переменные шаблона, создайте отдельный запрос для оповещения с жёстко заданными значениями.
Запросы журналов не поддерживаются
Запросы, использующие тип метрики Logs, нельзя применять для оповещений. Вместо этого преобразуйте запрос к использованию metric-агрегаций с Date histogram.
Сложность запроса
Сложные запросы с множеством вложенных агрегаций могут завершаться по тайм-ауту или не вычисляться. Упростите запросы для оповещений:
- Сократив количество bucket-агрегаций
- Используя подходящие временные интервалы
- Добавив фильтры для ограничения объёма просматриваемых данных
Рекомендации
При создании оповещений Elasticsearch следуйте этим рекомендациям:
- Используйте точные фильтры: добавляйте фильтры запросов Lucene, чтобы сосредоточиться на релевантных данных и повысить производительность запроса.
- Выбирайте подходящие интервалы: согласуйте интервал Date histogram с частотой вычисления правила.
- Сначала тестируйте запросы: убедитесь, что запрос возвращает ожидаемые результаты в Explore, прежде чем создавать оповещение.
- Задавайте реалистичные пороги: основывайте пороги оповещений на исторических закономерностях данных.
- Используйте осмысленные имена: давайте правилам оповещений описательные имена, отражающие то, что они отслеживают.