Class MailboxConvergenceTelemetry
- Namespace
- MailFathom.Infrastructure.Observability
- Assembly
- MailFathom.Infrastructure.dll
Makes a change MailFathom asked for and has not seen finished visible while it is still unfinished.
public sealed class MailboxConvergenceTelemetry
- Inheritance
-
MailboxConvergenceTelemetry
- Inherited Members
Remarks
The counter beside this one already reports every mutation that ended, which answers what happened. This answers the question an operator actually opens a dashboard with: what is outstanding right now, for how long, and is any of it stuck. Those are levels rather than events, so they are gauges read at scrape time from the last pass's answer, and the age is computed when the gauge is read rather than when the pass ran — otherwise an account whose runs are an interval apart would report an age that stepped rather than grew.
An account is published from its own pass and replaced whole by the next one, so a lifecycle that emptied stops being reported instead of reporting its last non-zero value forever. Nothing is remembered for an account that has never converged.
The dimensions are the account alias, the mutation name, and the lifecycle. All three are MailFathom's own words, bounded by the configured accounts times four mutations times three lifecycles, and none of them is derived from a message.
Constructors
- MailboxConvergenceTelemetry(ILogger<MailboxConvergenceTelemetry>, TimeProvider)
Initializes the gauges an outstanding mutation is read through.
Methods
- Report(MailAccountId, MailboxConvergenceReport)
Publishes what one account's convergence pass found, and records what the pass did.