Global
The line enables counting the duration of an inbound SMTP transaction — from the MAIL FROM command to the end of DATA. The default is false.
🔴 It is useful only together with <prometheus-listener>. The manual says so directly: the value goes nowhere except the pmta_smtp_request_duration_seconds metric. It is not in accounting, and not in the log either. Without the listener the line counts into the void.
The metric is a summary with quantiles 0.50, 0.90, 0.95 and 0.99, and the direction label tells acceptance from sending. This line opens the in half, the neighboring track-outbound-perf-stats the out half.
Why it is needed. Acceptance delay is an early sign of saturation: it grows before queues start to pile up and deliverability starts to fall. A submitting platform that “started sending slowly” often hits exactly this.
🔎 The schema has a place for it — the node_engines.metrics_port column — but nothing fills it. That is, the path was planned and not taken.
Our own telemetry answers other questions: accounting says what happened to a message, not how long the conversation took. Acceptance delay is a value we do not have at all right now.
Enabled only as a pair with the listener:
| Value | When |
|---|---|
| false (default) | there is no metrics listener |
| true | the listener is configured and acceptance delay is needed |
The other half is track-outbound-perf-stats: they are usually enabled together, otherwise the metric will be one-sided.
# both halves of the metric and the listener that serves them track-inbound-perf-stats truetrack-outbound-perf-stats true <prometheus-listener 0/0:9090> </prometheus-listener>
what people get wrong and how it ends2 mistakes▶
§ 3.3.1.43
our experience
2 relations
curl -s http://NODE:9090/metrics | grep pmta_smtp_request_duration_seconds
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.