Стадии конвейера
Свирель 0.12.1 · документация разработчика
Содержание главы
- Нормализация
- Фильтры
- Порядок и дубли
Нормализация
Каждая запись приводится к внутренней форме: время парсится из известного
формата источника, уровень маппится на пять значений (debug..fatal), источник
получает метку из конфига. Нераспознанное время заменяется временем приёма, а
запись помечается parsed=false — такие записи не выбрасываются.
Фильтры
Фильтры описываются списком и применяются в порядке объявления:
filters:
- drop: {level: "<= debug"} # убрать шум
- rewrite: {field: "msg", re: "token=[a-f0-9]+", to: "token=[REDACTED]"}
- route: {if: "source == nginx", to: "access"}
Примечание.
route не создаёт отдельный
процесс — это метка, по которой выход разделяет потоки при
outputs.multiple.Порядок и дубли
Внутри одного источника порядок сохраняется строго. Между источниками порядок
— «время приёма», что при разных задержках источников может отличаться от
«времени события». Дубли возможны в одном случае: файл переписан целиком
(logrotate copytruncate) — детект описан в разделе форматов.