Как устроена запись учёта

критично

accounting record model
Виды записей и состав полей

Общее устройство записей учёта: вид записи — d доставка, b отказ, t временная ошибка, tq временная ошибка очереди, r приём, f жалоба, rb и rs — отказ и состояние, пришедшие письмом, — и поля, состав которых настраивается. По умолчанию пишутся только d и b.

Вид записи решает, о чём строка, состав полей — что в ней есть. Оба задаются в блоке учёта, и оба влияют на размер: записей о доставке столько же, сколько доставленных получателей.

Главная ловушка — ждать временных ошибок в учёте по умолчанию. Без явного records пишутся только доставки и отказы: череды отсрочек в файле не будет, и «письмо шло три дня» из учёта не восстановить.
Что делает Хаб. Читает поток учёта целиком: вебхук несёт записи d, b, rb, t и f, и на них построена вся аналитика.
Рекомендуемые значения

Виды записей:

Вид О чём строка По умолчанию
d доставка да
b отказ да
t, tq временная ошибка получателя, очереди нет
r приём письма нет
f жалоба нет
rb, rs отказ и состояние, пришедшие письмом нет
Виды записей и умолчание «только d и b» — из руководства (§ 12.2). Таблица — наша.
Пример в конфигурации
<acct-file /var/log/pmta/acct.csv>
    records d,b,t    record-fields d *,timeFirstAttempt
</acct-file>
Виды записей перечисляют строкой records, состав полей — record-fields для каждого вида.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Как проверить на узле
Посмотреть, какие виды записей пишет узел:
cut -d, -f1 /var/log/pmta/acct-*.csv | sort | uniq -c
Первый столбец — вид записи; чего нет в подсчёте, того узел не пишет.
В Хабе
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Разобраться с доставляемостью · Собрать телеметрию
Важность
критично