rate() и count_over_time()
Тема дорожной карты · Loki
Функции rate() и count_over_time() являются наиболее часто используемыми диапазонными агрегациями в LogQL для вычисления метрик пропускной способности логов из Grafana Loki. count_over_time({job="nginx"}[5m]) подсчитывает общее количество строк логов в выбранных потоках за пятиминутное окно на каждый набор меток, возвращая мгновенный вектор. rate({job="nginx"}[5m]) делит это количество на число секунд в окне, получая частоту в секунду, которая непосредственно сопоставима с частотами счётчиков Prometheus и подходит для отображения на дашбордах Grafana. Обе функции можно комбинировать с извлечением меток и выражениями фильтрации, например rate({job="nginx"} |= "error" [5m]) для измерения частоты ошибочных логов. Обёртка этих функций операторами агрегации, такими как sum by (app), позволяет группировать частоты логов по нескольким потокам Loki в единой панели, создавая сводное представление о трафике запросов или ошибок для всего парка приложений.
Как это работает
rate() и count_over_time(): LogQL может считать metrics из логов. rate({app="nginx"} |= "5"[5m]) = rate 5xx-ошибок per second. count_over_time(...) = absolute counts. bytes_rate(...) = bytes per second. quantile_over_time(0.95, ...) = 95-й percentile числового поля (после extraction). sum by (status_code)(rate(...)) = aggregations. Metric queries из логов позволяют строить alerts + dashboards без separate metric-пайплайнов, но дороже Prometheus для той же метрики.
Когда применять
Metric queries — для ad-hoc анализа из уже имеющихся логов. Для production metrics инструментируйте Prometheus напрямую — намного дешевле в query time. rate() + sum by (...) для HTTP status code rates из access logs — классический паттерн. Recording rules (следующая тема) сохраняют эти computed-метрики для dashboards.
Типичные ошибки
Ловушки rate() и count_over_time(): тяжёлый quantile_over_time по неделям логов (медленно, дорого); дублирование Prometheus-метрик через LogQL (Prometheus дешевле); не кешируют/записывают dashboard-queries (пересчитывается на каждом refresh); игнор high-cardinality extracted labels в aggregations.
Связанные понятия
Полезные ресурсы
Проверить знания (1)
Загрузка вопросов…