Pipeline stages

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

Этапы конвейера в Promtail — это последовательность шагов обработки, применяемых к каждой строке лога после её считывания из источника и до отправки в Grafana Loki. Среди распространённых этапов конвейера: regex (извлечение значений из неструктурированных строк логов с помощью именованных групп захвата), json (разбор JSON-полей во временно извлечённые значения), timestamp (разбор пользовательского поля временной метки, чтобы Loki хранил корректное время события, а не время записи), labels (продвижение извлечённых значений в метки Loki), output (замена содержимого строки лога на преобразованную версию) и drop (отброс строк, соответствующих условию, для сокращения объёма логов). Этапы конвейера настраиваются в разделе scrape_configs файла promtail-config.yaml и выполняются в том порядке, в котором они перечислены — результат одного этапа поступает на вход следующего. Например, этап json может извлечь поле level из структурированной строки лога, а последующий этап labels может продвинуть level в метку Loki для эффективной фильтрации в LogQL. Грамотное использование этапов конвейера позволяет обогащать потоки логов и управлять кардинальностью меток без изменения самих приложений.

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

Pipeline stages: канонический log shipper для Loki. Tail-ит файлы + container stdout, добавляет labels (из service discovery — K8s pods, file paths, syslog), парсит log lines через pipeline stages (regex, json, labels, output, timestamp, template), шипит в Loki HTTP API. В Kubernetes работает как DaemonSet — логи каждой ноды идут в Loki. Promtail сменяется Grafana Alloy (merged OTel-style агент) — новые деплои могут предпочесть Alloy.

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

В K8s деплойте Promtail (или Alloy) как DaemonSet + kubernetes_sd для discovery. Labels в scrape_configs — low-cardinality. Pipeline stages json/regex для extract structured полей ДО shipping — экономит query-time работу. Pin версию агента + тестируйте pipeline changes на sample логах.

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

Ловушки Pipeline stages: extract high-cardinality labels в pipeline (убивает Loki); не capture pod restarts через positions file (логи теряются на рестарте); деплой Promtail без resource limits (OOM на log spikes); regex stage когда json работает (медленнее).

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

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