Global
The line adds milliseconds to the first attempt timestamp in accounting records. The default is false, and it applies only when track-time-first-attempt is enabled.
It makes sense on fast nodes. If messages go out in fractions of a second, a timestamp precise to the second shows zero for everyone — and telling “instantly” from “in half a second” becomes impossible. That very difference is the subject of measurement.
Do not confuse it with log-hires-timestamp — that line is about timestamps in the log, this one about a field in accounting. The names are similar, the files differ.
The price is a few characters per record, and only for the record types where the field is present.
The fractional part would give the Hub nothing now: telemetry calculates delivery time in whole seconds — from timeLogged, timeQueued and totalSecondsQueued, while timeFirstAttempt serves only as a fallback and is also taken to the nearest second.
Enabled together with counting or not at all:
| Value | When |
|---|---|
| false (default) | counting is off or the node is slow |
| true | counting is on and messages go out in fractions of a second |
# both lines together: without the first the second does nothing track-time-first-attempt true time-first-attempt-hires-timestamp true
what people get wrong and how it ends2 mistakes▶
§ 3.3.1.42
our experience
1 relation
head -3 "$(ls -t /var/log/pmta/acct-*.csv | head -1)"
3 articles
◇What the node tells about itself and through which channelsSeven observation surfaces: the web monitor, the console in four formats, the log, accounting, accounting search, metrics and export to external analytics.◇Two inbound report processors and what to do with themBounces by message and complaints are parsed by two identically structured blocks; each has its own address list and its own pair of decisions about the message’s fate.◇Five ways for a queue to hand off a messageA queue does not have to use SMTP: it can write to a file, run a program, call over HTTP or discard.