Оповещения Google Cloud Monitoring
Источник данных Google Cloud Monitoring поддерживает Grafana Alerting, что позволяет создавать правила оповещений на основе метрик GCP и Service Level Objectives (SLO). Вы можете отслеживать свою среду Google Cloud и получать уведомления при выполнении определённых условий.
Прежде чем начать
Перед созданием правил оповещений убедитесь в следующем:
- У вас есть соответствующие разрешения на создание правил оповещений в Grafana.
- Ваш источник данных Google Cloud Monitoring настроен и работает корректно. См. Настройка источника данных.
- Вы знакомы с концепциями Grafana Alerting.
Поддерживаемые типы запросов для оповещений
Следующие типы запросов поддерживают оповещения:
Note
Запросы оповещений должны возвращать числовые данные, которые Grafana может сравнить с порогом. Запросы, возвращающие только текст или нечисловые данные, нельзя напрямую использовать для оповещений.
Требования к аутентификации
Правила оповещений выполняются как фоновые процессы без контекста пользователя. Оба поддерживаемых метода аутентификации работают с оповещениями:
Создание правила оповещения
Чтобы создать правило оповещения на основе данных Google Cloud Monitoring:
- Перейдите в Alerting > Alert rules.
- Нажмите New alert rule.
- Введите имя для правила оповещения.
- В разделе Define query and alert condition:
- Выберите ваш источник данных Google Cloud Monitoring.
- Настройте запрос (например, запрос Builder для использования CPU или запрос SLO для бюджета ошибок).
- Добавьте выражение Reduce, если запрос возвращает несколько рядов.
- Добавьте выражение Threshold, чтобы определить условие оповещения.
- Настройте Set evaluation behavior:
- Выберите или создайте папку и группу вычислений.
- Задайте интервал вычислений (как часто проверяется оповещение).
- Задайте период ожидания (как долго условие должно быть истинным до срабатывания).
- Добавьте метки и аннотации, чтобы обеспечить контекст для уведомлений.
- Нажмите Save rule.
Подробные инструкции см. в разделе Create a Grafana-managed alert rule.
Пример: оповещение об использовании CPU на виртуальной машине
В этом примере создаётся оповещение, которое срабатывает, когда использование CPU виртуальной машины Compute Engine превышает 80 %:
- Создайте новое правило оповещения.
- Настройте запрос:
- Query type: Builder
- Project: выберите ваш проект GCP
- Service: Compute Engine
- Metric:
instance/cpu/utilization - Group by function: mean
- Добавьте выражения:
- Reduce: Last (чтобы получить самую свежую точку данных)
- Threshold: Is above 0.8 (использование CPU возвращается в виде десятичной дроби)
- Задайте вычисление каждую 1 минуту с периодом ожидания 5 минут.
- Сохраните правило.
Пример: оповещение о бюджете ошибок SLO
В этом примере создаётся оповещение, когда оставшийся бюджет ошибок SLO опускается ниже 20 %:
- Создайте новое правило оповещения.
- Настройте запрос:
- Query type: Service Level Objectives (SLO)
- Project: выберите ваш проект GCP
- Service: выберите ваш сервис SLO
- SLO: выберите ваш SLO
- Selector: SLO Error Budget Remaining
- Добавьте выражения:
- Reduce: Last
- Threshold: Is below 0.2 (осталось 20 %)
- Задайте вычисление каждые 5 минут.
- Сохраните правило.
Пример: оповещение о памяти Cloud SQL
В этом примере создаётся оповещение, когда использование памяти экземпляра Cloud SQL превышает 90 %:
- Создайте новое правило оповещения.
- Настройте запрос:
- Query type: Builder
- Project: выберите ваш проект GCP
- Service: Cloud SQL
- Metric:
database/memory/utilization - Filter: при необходимости добавьте фильтр для конкретных экземпляров базы данных
- Добавьте выражения:
- Reduce: Last
- Threshold: Is above 0.9
- Задайте вычисление каждую 1 минуту.
- Сохраните правило.
Рекомендации
Следуйте этим рекомендациям, чтобы создавать надёжные и эффективные оповещения на основе данных Google Cloud Monitoring.
Используйте подходящие интервалы запросов
- Задавайте интервал вычислений оповещения не меньше минимального разрешения данных из Google Cloud Monitoring.
- Большинство метрик GCP имеют гранулярность не менее 1 минуты.
- Избегайте очень коротких интервалов (менее 1 минуты), так как они могут вызывать тайм-ауты вычислений или пропуск точек данных.
Сокращайте несколько рядов
Когда ваш запрос возвращает несколько временных рядов (например, использование CPU по нескольким виртуальным машинам), используйте выражение Reduce, чтобы агрегировать их:
- Last: использовать самое свежее значение
- Mean: среднее по всем рядам
- Max/Min: использовать наибольшее или наименьшее значение
- Sum: сумма по всем рядам
Используйте подходящие периоды выравнивания
Для запросов оповещений убедитесь, что период выравнивания обеспечивает достаточное количество точек данных:
- В большинстве случаев используйте “cloud monitoring auto” или “grafana auto”.
- Для более точного контроля задайте фиксированный период выравнивания, соответствующий интервалу вычислений.
Обрабатывайте условия отсутствия данных
Настройте, что происходит, когда данные не возвращаются:
- В правиле оповещения найдите Configure no data and error handling.
- Выберите подходящее действие:
- No Data: оставить оповещение в текущем состоянии
- Alerting: рассматривать отсутствие данных как условие оповещения
- OK: рассматривать отсутствие данных как исправное состояние
Проверяйте запросы перед настройкой оповещений
Всегда проверяйте, что ваш запрос возвращает ожидаемые данные, прежде чем создавать оповещение:
- Перейдите в Explore.
- Выберите ваш источник данных Google Cloud Monitoring.
- Выполните запрос, который планируете использовать для оповещения.
- Убедитесь, что формат и значения данных корректны.
- Убедитесь, что запрос возвращает числовые данные, пригодные для сравнения с порогом.
Правила записи (recording rules)
Источник данных Google Cloud Monitoring поддерживает правила записи, управляемые Grafana. Правила записи периодически предварительно вычисляют часто используемые или ресурсоёмкие запросы, сохраняя результаты как новую метрику временного ряда.
Используйте правила записи, чтобы:
- Снизить нагрузку от запросов на Google Cloud Monitoring за счёт предварительного вычисления сложных агрегаций.
- Создавать производные метрики из данных GCP для использования в оповещениях и дашбордах.
- Импортировать данные Google Cloud Monitoring в базу данных, совместимую с Prometheus.
Note
Правила записи, управляемые Grafana, записывают результаты в базу данных, совместимую с Prometheus (например, Grafana Mimir или управляемый Prometheus в Grafana Cloud). Необходимо настроить целевой источник данных для хранения записанных метрик.
Инструкции по созданию правил записи см. в разделе Create recording rules.
Устранение неполадок
Если ваши оповещения Google Cloud Monitoring работают не так, как ожидается, используйте следующие разделы для диагностики и устранения распространённых проблем.
Оповещения не срабатывают
- Проверьте, что запрос возвращает числовые данные в Explore.
- Убедитесь, что интервал вычислений даёт достаточно времени для появления данных.
- Убедитесь, что порог задан корректно (помните, что многие метрики GCP возвращают десятичные дроби, а не проценты).
- Изучите состояние правила оповещения и любые сообщения об ошибках в интерфейсе Alerting.
Ошибки аутентификации при вычислении оповещений
Если при вычислении оповещений отображаются ошибки аутентификации:
- Убедитесь, что у сервисной учётной записи есть роль Monitoring Viewer.
- Если используется файл ключа JWT, убедитесь, что он не удалён и не отозван.
- Проверьте, что включены необходимые API (Monitoring API, Cloud Resource Manager API).
Ошибки тайм-аута запросов
- Увеличьте период выравнивания, чтобы уменьшить количество точек данных.
- Сократите временной диапазон в запросе.
- Упростите сложные запросы MQL.
- Добавьте фильтры, чтобы сузить набор результатов.
Дополнительную помощь по устранению неполадок см. в разделе Troubleshoot Google Cloud Monitoring.