Последнее обновление: июля 29, 2026

Оповещения Loki

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

Loki работает с двумя видами правил оповещения:

  • Правила оповещения, управляемые Grafana: Grafana вычисляет правило по метрическому запросу LogQL. Это наиболее распространённый подход, и он работает с любым источником данных Loki.
  • Правила оповещения, управляемые источником данных: правило хранит и вычисляет ruler Loki. Используйте их, когда хотите, чтобы правила оповещения находились рядом с вашим развёртыванием Loki. Включите параметр Manage alert rules in Alerting UI в источнике данных, чтобы создавать и редактировать их из Grafana.

Прежде чем начать

Прежде чем создавать правила оповещения на данных Loki, убедитесь, что у вас есть:

Поддерживаемые запросы для оповещений

Правила оповещения требуют запросов, возвращающих числовые данные, которые Grafana может сравнить с порогом. Оберните запрос журналов Loki в метрическую функцию LogQL, такую как rate или count_over_time, чтобы получить числовые временные ряды.

Note

Для оповещений используйте метрический запрос, а не обычный запрос журналов. Запрос журналов возвращает строки журнала, которые Grafana не может сравнить с порогом.

Следующие запросы — распространённые отправные точки для оповещений. Замените селекторы меток значениями из ваших собственных журналов.

Скорость появления строк с ошибками в секунду:

logql
sum(rate({app="my-app"} |= `error` [5m]))

Скорость появления ошибок в разбивке по коду состояния, чтобы оповещать по каждому эндпоинту или сервису:

logql
sum by (status) (rate({app="nginx"} | logfmt | status=~`5..` [5m]))

Количество медленных запросов для оповещения о задержках:

logql
sum(count_over_time({app="my-app"} | logfmt | duration > 1s [5m]))

Обнаружение сервиса, который перестал писать журналы, через оповещение, когда количество падает до нуля:

logql
sum(count_over_time({app="my-app"} [10m]))

Создание правила оповещения, управляемого Grafana

Чтобы создать правило оповещения, управляемое Grafana, на данных Loki:

  1. Перейдите в Alerting > Alert rules.
  2. Нажмите New alert rule.
  3. Введите имя для правила оповещения.
  4. В разделе Define query and alert condition:
    • Выберите ваш источник данных Loki.
    • Введите метрический запрос LogQL.
    • Добавьте выражение Reduce, если ваш запрос возвращает несколько рядов.
    • Добавьте выражение Threshold, чтобы задать условие оповещения.
  5. Настройте раздел Set evaluation behavior:
    • Выберите или создайте папку и группу вычисления.
    • Задайте интервал вычисления и период ожидания.
  6. Добавьте метки и аннотации, чтобы дать контекст для уведомлений.
  7. Нажмите Save rule.

Подробные инструкции см. в разделе Create a Grafana-managed alert rule.

Пример: оповещение о скорости появления журналов с ошибками

Этот пример срабатывает, когда скорость появления строк журнала, содержащих error, превышает порог:

  1. Создайте новое правило оповещения.

  2. Настройте запрос, заменив селектор метки на собственный:

    logql
    sum(rate({app="my-app"} |= `error` [5m]))
  3. Добавьте выражения:

    • Reduce: Last, чтобы получить самое последнее значение.
    • Threshold: Is above 10.
  4. Задайте вычисление каждую 1 минуту с периодом ожидания 5 минут.

  5. Сохраните правило.

Управление правилами оповещения, управляемыми источником данных

Когда вы включаете Manage alert rules in Alerting UI для источника данных Loki, вы можете создавать и редактировать правила оповещения и записи, которые хранит и вычисляет ruler Loki. Эти правила отображаются в UI Grafana Alerting рядом с правилами, управляемыми Grafana, сгруппированные под источником данных Loki.

Конфигурация источника данных Loki не включает маршрутизацию Alertmanager. Чтобы маршрутизировать возникающие оповещения, добавьте отдельный источник данных Alertmanager. Дополнительные сведения см. в разделах Configure the Loki data source и Data source-managed alert rules.

Рекомендации

Следуйте этим рекомендациям, чтобы создавать надёжные оповещения на данных Loki.

Проверяйте запросы перед настройкой оповещений

Убедитесь, что ваш запрос возвращает числовые данные, прежде чем создавать оповещение:

  1. Перейдите в Explore.
  2. Выберите ваш источник данных Loki.
  3. Выполните метрический запрос LogQL, который планируете использовать для оповещения.
  4. Убедитесь, что результат числовой и подходит для сравнения с порогом.

Сводите временной ряд к одному значению

Правило, управляемое Grafana, сравнивает с порогом одно число. Запрос с типом range возвращает временной ряд с множеством точек, который правило не может вычислить напрямую. Либо задайте для запроса Type значение instant, либо добавьте выражение Reduce, например Last или Mean, между запросом и выражением Threshold. Без одного из этого правило может вычислиться некорректно.

Задавайте период ожидания, чтобы избежать ложных срабатываний

Кратковременное состояние, например короткий сбой сети или мгновенный всплеск ошибок, может превысить порог на одном вычислении. Задайте период ожидания, чтобы правило срабатывало только после того, как условие сохраняется в течение устойчивого промежутка времени. Период ожидания в несколько интервалов вычисления уменьшает ложные срабатывания из-за недолгих состояний.

Обрабатывайте отсутствие данных и нулевые результаты

Метрический запрос LogQL возвращает отсутствие рядов, когда ни одна строка журнала не совпадает, а не значение 0. Grafana вычисляет правило, не получившее ни одного ряда, как No Data, а не Normal, из-за чего оповещение может перейти в состояние No Data вместо того, чтобы разрешиться.

Чтобы избежать неожиданных состояний No Data:

  • Применяйте порог в условии оповещения, а не пишите запрос настолько строгий, что он ничего не возвращает. Например, запрашивайте скорость появления ошибок и сравнивайте её в выражении Threshold вместо того, чтобы писать запрос, возвращающий только строки выше порога.
  • Задайте поведение при отсутствии данных в разделе Configure no data and error handling в нужное вам состояние. Доступны варианты No Data, Alerting, Normal и Keep Last State. Выберите Normal, если отсутствие совпадающих журналов не является проблемой.

Note

Редактирование и сохранение правила оповещения сбрасывает его состояние на Normal. Правило снова переходит в Pending или Alerting на следующем вычислении, если условие по-прежнему выполняется. Это стандартное поведение Grafana Alerting и оно не относится к источнику данных Loki.

Устранение неполадок с оповещениями

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

Оповещения не срабатывают

  • Убедитесь, что запрос является метрическим запросом LogQL, возвращающим числовые данные в Explore.
  • Убедитесь, что интервал вычисления даёт достаточно времени, чтобы данные были доступны.
  • Проверьте состояние правила оповещения и любые сообщения об ошибках в UI Alerting.

Оповещение неожиданно переходит в No Data

  • Запрос не вернул ряды, потому что ни одна строка журнала не совпала. Метрический запрос LogQL возвращает отсутствие рядов, а не 0, когда ничего не совпадает. Задайте поведение при отсутствии данных в разделе Configure no data and error handling или измените запрос так, чтобы он возвращал значение, которое вы сравниваете с порогом.
  • Убедитесь, что для запроса и диапазона времени существуют журналы в Explore.

Оповещение срабатывает на кратких всплесках

  • Добавьте или увеличьте период ожидания, чтобы правило срабатывало только когда условие сохраняется на протяжении нескольких вычислений.
  • Расширьте диапазон в метрическом запросе, например с [1m] до [5m], чтобы недолгие всплески влияли меньше.

Правила, управляемые источником данных, не отображаются

  • Убедитесь, что Manage alert rules in Alerting UI включён в конфигурации источника данных Loki.
  • Проверьте, что ruler Loki включён и достижим из Grafana.

За дополнительной помощью обратитесь к разделу Troubleshoot Loki issues.