Форматы источников
Свирель 0.12.1 · документация разработчика
Содержание главы
- Файлы
- journald
- Syslog-сокет
- Подводные камни
Файлы
Файловый источник следит за inode и хранит смещение в стейте
(~/.local/state/svirel/offsets). Ротация по
rename+create обрабатывается автоматически; для
copytruncate включите detect_truncate: true —
иначе источник продолжит читать с устаревшего смещения и выдаст дубли.
journald
Чтение идёт через journalctl -f --output=json — без привязки к
libsystemd. Поля маппятся: __REALTIME_TIMESTAMP → время,
PRIORITY → уровень, _SYSTEMD_UNIT → источник.
Syslog-сокет
Unix-сокет /dev/log или UDP. UDP-режим не даёт гарантий
доставки (такова природа транспорта) — используйте для некритичных потоков.
Подводные камни
| Ситуация | Проявление | Решение |
|---|---|---|
| copytruncate без детекта | дубли всего файла | detect_truncate: true |
| файл удалён до дочитывания | потеря хвоста | rotate compress delaycompress |
| часы источника отстают | перепутан порядок на выходе | NTP; поле приёма в записи |