Recording rules

Тема дорожной карты · Loki

Правила записи в Grafana Loki позволяют компоненту Ruler предварительно вычислять дорогостоящие или часто используемые метрические LogQL-запросы и записывать результаты как данные временных рядов в Prometheus-совместимую конечную точку remote write, делая их доступными в виде обычных метрик в Grafana или Prometheus. Правило записи определяется в том же формате YAML-групп правил, что и правила алертов, но использует поле record вместо alert — например, запись job:loki_log_lines:rate5m из выражения sum by (job) (rate({cluster="prod"} [5m])). Предварительное вычисление метрик на основе логов с помощью правил записи значительно снижает нагрузку запросов на Grafana Loki при рендеринге дашбордов, поскольку Grafana считывает кэшированные значения метрик из Prometheus, а не повторно вычисляет сырое LogQL-выражение при каждом обновлении панели. Правила записи особенно ценны для агрегаций с высокой кардинальностью, которые были бы слишком медленными для интерактивного вычисления, например quantile_over_time по большому числу потоков логов. Для включения правил записи необходимо установить remote_write.enabled: true и настроить remote_write.client.url в разделе ruler файла loki-config.yaml.

Как это работает

Recording rules: Ruler-компонент Loki оценивает LogQL-правила + шлёт alerts в Alertmanager (тот же что Prometheus). Alert rules: триггерятся когда LogQL metric query пересекает threshold (e.g., "больше 10 ошибок/мин за последние 5 мин"). Recording rules: pre-compute LogQL-метрики + сохраняют в Prometheus-совместимый remote_write target — экономит cost на повторяющихся dashboard queries. Комбинируйте Loki alerts с Prometheus alerts в одном Alertmanager для unified routing.

Когда применять

Loki alerts для log-derived сигналов, не доступных как metrics ("scan attempts spike", "auth failure rate"). Для большинства operational metrics Prometheus alerts дешевле. Тестируйте alert rules на исторических данных до включения — false positives = alert fatigue. Rule evaluation interval разумный (30s-1m, не 5s).

Типичные ошибки

Ловушки Recording rules: alert rule на тяжёлом LogQL query (CPU/IO съедены alerts); flapping alerts из-за noisy queries (for: 5m для sustained); нет Alertmanager grouping (один event → 50 alerts); recording rules без retention plan (storage растёт).

Связанные понятия

Полезные ресурсы