Шпаргалка LogQL¶
Язык запросов Loki для логов.
Фильтр по меткам (обязателен)¶
{job="api", env="production"}
Регулярные выражения для меток:
{app=~"api-.*", env!~"dev|test"}
Фильтр по содержимому строки (pipe)¶
{job="api"} |= "error"
{job="api"} != "DEBUG"
Исключает текст.
regex:
{job="api"} |~ "(?i)error|fail[ed]"
Pipeline JSON parsing¶
{job="api"}
| json *
Извлекает все поля лога как отдельные переменные.
—
{job="api"}
| json message="message",traceID="traceid"
— только определённые ключи.
line_format¶
{job="api"}
| line_format "Status={{.status}} User={{.user}}""
Метрические запросы¶
Создание метрики из логов — rate:
rate({job="api"} |="error" [5m])
Количество за интервал:
count_over_time({job="api"} [5m])
Агрегация через извлечение значения (unwrap/label)¶
Для логов, содержащих числовое поле (например latency_ms), извлекаем его через unwrap и аггрегируем:
sum_over_time({job="api"} |= "latency_ms="]]>unwrap latency_ms | __error__="" [5m])
— суммирует значения.
Все описанные выше pipe-операторы — это шпаргалка для навигации по логам.