Оповещения Amazon CloudWatch
Источник данных Amazon CloudWatch поддерживает Grafana Alerting. Вы можете создавать правила оповещений по метрикам CloudWatch и CloudWatch Logs, чтобы Grafana уведомляла вас, когда метрика пересекает пороговое значение или когда запрос к логам возвращает значение, удовлетворяющее условию оповещения.
Это Grafana Alerting, оцениваемый Grafana, а не CloudWatch alarms. Чтобы вместо этого визуализировать историю существующих CloudWatch alarms, см. раздел Аннотации Amazon CloudWatch.
Прежде чем начать
Прежде чем создавать правила оповещений с данными CloudWatch, убедитесь, что у вас есть:
- Настроенный источник данных Amazon CloudWatch.
- Разрешения на создание правил оповещений в Grafana.
- Знакомство с концепциями Grafana Alerting.
Поддерживаемые типы запросов для оповещений
Правила оповещений требуют запросов, возвращающих числовые данные, которые Grafana может сравнить с пороговым значением. CloudWatch поддерживает оповещения для следующих типов запросов:
Note
Нельзя создать правило оповещения из выражения метрической математики, ссылающегося на другой запрос, например
queryA * 2. Вместо этого определите метрику непосредственно в запросе оповещения.
Создание правила оповещения
Чтобы создать правило оповещения с использованием данных CloudWatch:
- Перейдите в Alerting > Alert rules.
- Нажмите New alert rule.
- Введите имя для правила оповещения.
- В разделе Define query and alert condition:
- Выберите ваш источник данных Amazon CloudWatch.
- Настройте запрос, например запрос Metrics для
CPUUtilizationили запрос Logs, использующий командуstats. - Добавьте выражение Reduce, если ваш запрос возвращает несколько рядов.
- Добавьте выражение Threshold, чтобы определить условие оповещения.
- Настройте раздел Set evaluation behavior:
- Выберите или создайте папку и группу оценки.
- Задайте интервал оценки.
- Задайте период ожидания (pending period).
- Добавьте метки (labels) и аннотации, чтобы обеспечить контекст для уведомлений.
- Нажмите Save rule.
Подробные инструкции см. в разделе Create a Grafana-managed alert rule.
Пример: оповещение по порогу метрики
Этот пример срабатывает, когда средняя загрузка CPU EC2 превышает 80%:
- Создайте новое правило оповещения.
- Настройте запрос:
- Namespace:
AWS/EC2 - Metric name:
CPUUtilization - Statistic:
Average - Dimensions:
InstanceId
- Namespace:
- Добавьте выражения:
- Reduce: Last, чтобы получить самую свежую точку данных.
- Threshold: Is above 80.
- Задайте оценку каждую 1 минуту с периодом ожидания 5 минут.
- Сохраните правило.
Пример: оповещение по количеству ошибок в логах
Этот пример создаёт оповещение, когда количество записей логов, содержащих Exception, превышает порог. Для оповещений CloudWatch Logs требуется запрос, возвращающий числовые данные, которые можно получить с помощью команды stats:
-
Создайте новое правило оповещения.
-
Настройте запрос:
-
Выберите CloudWatch Logs в качестве режима запроса.
-
Выберите регион и группы логов для запроса.
-
Введите следующий запрос:
filter @message like /Exception/ | stats count(*) as exceptionCount by bin(5m)
-
-
Добавьте выражения:
- Reduce: Max, чтобы получить наибольшее количество за период.
- Threshold: Is above 10.
-
Задайте оценку каждые 5 минут.
-
Сохраните правило.
Note
Если вы получаете ошибку вида
input data must be a wide series but got ..., убедитесь, что ваш запрос возвращает числовые данные, которые можно отобразить на панели временных рядов.
Тайм-ауты CloudWatch Logs при оценке оповещений
Для запросов CloudWatch Logs Grafana опрашивает AWS до завершения запроса или достижения тайм-аута. Во время оценки оповещений тайм-аут, заданный в файле конфигурации Grafana, имеет приоритет над настройкой Query Result Timeout в источнике данных. Задайте тайм-аут конфигурации достаточно большим, чтобы ваши запросы к логам успевали завершиться.
Рекомендации
Следуйте этим рекомендациям, чтобы создавать надёжные оповещения с данными CloudWatch.
Тестируйте запросы перед настройкой оповещений
Убедитесь, что ваш запрос возвращает числовые данные, прежде чем создавать оповещение:
- Перейдите в Explore.
- Выберите ваш источник данных Amazon CloudWatch.
- Выполните запрос, который планируете использовать для оповещений.
- Убедитесь, что результат числовой и подходит для сравнения с порогом.
Свёртка нескольких рядов
Когда запрос возвращает несколько временных рядов, используйте выражение Reduce, чтобы свести их в одно значение с помощью Last, Mean, Max, Min или Sum.
Обработка условий отсутствия данных
Настройте поведение правила, когда данные не возвращаются, в разделе Configure no data and error handling. Выберите No Data, Alerting или OK в зависимости от того, следует ли считать отсутствие данных проблемой.
Устранение неполадок с оповещениями
Если ваши оповещения CloudWatch работают не так, как ожидается, используйте следующие разделы для диагностики распространённых проблем.
Оповещения не срабатывают
- Убедитесь, что запрос возвращает числовые данные в Explore.
- Убедитесь, что интервал оценки даёт достаточно времени для появления данных.
- Проверьте состояние правила оповещения и любые сообщения об ошибках в интерфейсе Alerting.
Запросы к логам для оповещений завершаются по тайм-ауту
- Увеличьте тайм-аут в файле конфигурации Grafana, который имеет приоритет во время оценки оповещений.
- Сузьте диапазон времени или добавьте фильтры, чтобы уменьшить объём данных, сканируемых запросом.
Дополнительную помощь см. в разделе Устранение неполадок Amazon CloudWatch.