loki

7 commands

7 shown

Парсинг JSON-логов и переформатирование строки Фильтр по подстроке, парсинг JSON и вывод только нужных полей. note: | json до line_format. {app="api"} |= "error" | json | line_format "{{.level}} {{.msg}}" #loki#logql#observability#debug Скорость логов по уровням Логов в секунду по уровням за окно 5 минут. modern: парсер logfmt для строк key=value. sum by (level) (rate({app="api"} | logfmt [5m])) #loki#logql#rate#observability Квантиль по извлечённой задержке p99 задержки из числового поля лога по маршрутам. note: unwrap требует числовое поле/метку. quantile_over_time(0.99, {app="api"} | json | unwrap latency_ms [5m]) by (route) #loki#logql#performance#observability Подсчёт совпадающих строк во времени Подсчёт строк по regex-совпадению ошибок в минуту по неймспейсу. |~ — это regex-match. sum(count_over_time({namespace="prod"} |~ "timeout|deadline exceeded" [1m])) #loki#logql#regex#troubleshooting Разовый запрос через logcli CLI-запрос за последний час с лимитом строк и выводом JSONL. сначала задайте LOKI_ADDR. logcli query '{job="app/api"} |= "panic"' --since=1h --limit=200 --output=jsonl #loki#logcli#debug#observability query_range Loki через API Метрический range-запрос по HTTP и извлечение результата через jq. step задаётся в секундах. curl -sG "$LOKI_ADDR/loki/api/v1/query_range" --data-urlencode 'query=sum(rate({app="api"}[5m]))' --data-urlencode 'step=60' | jq '.data.result' #loki#api#monitoring#observability Отправка строк логов в Loki Ручная отправка записи лога для проверки приёма. note: метка времени — наносекунды epoch. curl -s -H 'Content-Type: application/json' -XPOST "$LOKI_ADDR/loki/api/v1/push" -d '{"streams":[{"stream":{"app":"test"},"values":[["'$(date +%s%N)'","hello loki"]]}]}' #loki#api#troubleshooting#observability
no commands match