Connect
Source health
The Sources page shows each source's acquisition freshness separately from event time and ingestion lag, with admission counts, errors and backlog. A source that stops sending is raised as its own problem by the source-silence alarm definition, so a quiet feed is never mistaken for a healthy one.
How it works#
Three different times describe the same source, and they answer different questions.
| Measure | Question it answers |
|---|---|
| Acquisition freshness | When did MonitOps last successfully acquire from this source, or last receive its heartbeat? |
| Event time | When did the events in the data happen, according to the sender? |
| Ingestion lag | How long did it take between an event happening and MonitOps having it? |
A source can be fresh and still carry old events, for example when a sender replays history. A source can carry recent events and still be late. Keeping the three apart avoids both mistakes. Event time and the time of the last data record are tracked separately from acquisition health.
Acquisition freshness is recorded as a signal for every source, freshness_s: the seconds since the last successful acquisition or heartbeat. A successful poll that returns no data refreshes it, because the acquisition succeeded. An empty export, or a replay of historical records, does not: a request that carries nothing, or carries the past, does not show that the source is alive now.
Counts, errors and backlog#
Freshness says whether a source is alive. Admission counts say what it sent. For each source, MonitOps counts the requests, records and bytes it received per day, including requests that were rejected by a limit after the sender was authenticated, and it shows the errors and the backlog of records still waiting to be processed. Records that failed validation or conflicted with an enforced value are counted as quarantined. A count that could not be completed, for example because a request was refused before it was fully read, is marked incomplete and is a lower bound. Unauthenticated traffic is not attributed to any source.
Source silence#
Silence is detected from freshness against a deadline, not from the absence of an alert.
- Threshold. A source is silent when
freshness_sreaches five times its expected acquisition or heartbeat interval, by default. The expected interval is part of the source's configuration. - Deadline. MonitOps keeps a deadline per source feed and rechecks freshness when it expires. This works when no data arrives at all, which is exactly when evaluating incoming data would never run.
- Clearing. Silence clears on the next successful acquisition or heartbeat. Intervals with no data do not count towards recovery.
The result is an alert like any other, on the normal alert path. Because silence is its own problem, missing data never looks like a healthy service.
Event-driven sources#
A source that only emits when something happens has no natural interval. For these, silence is measured from the last successful poll, subscription or heartbeat, not from the last business event. A vendor stream needs a configured heartbeat or an expected activity interval before silence can be judged.
An idle stream with no activity guarantee is unknown, not failed. It is shown as unknown health and does not raise a silence alert, because a quiet period may be normal.
Lagging feeds#
Some feeds deliver late by design, for example files that arrive hourly. They are lagging signals. They are exempt from silence, and lagging signals never raise alerts. They are attached to an incident as evidence when they arrive, and the cause assessment is re-run once, with the re-run recorded in the timeline.
What you see in the console#
On Sources, each source shows acquisition freshness, event time and ingestion lag as separate figures, with admission counts, errors, backlog and quarantined records. A silent source is marked as such, and its health is shown with the status components, so that colour is never the only signal.
In the sample estate, crm-sync stops sending logs. Its card shows that the source is silent and the time of its last record.
Source silent
crm-sync logs · last record 14 min ago
The silence alert is detected from the feed deadline, without any incoming data. When logs resume, it clears.
Limits and defaults#
| Item | Default |
|---|---|
| Silence threshold | Five times the expected interval |
| Measured from | The feed deadline, refreshed by successful acquisition or heartbeat |
| Refreshed by an empty poll | Yes |
| Refreshed by an empty export or replayed history | No |
| Lagging feeds | Exempt |
| Idle stream without an activity guarantee | Unknown, not failed |
Failure states#
| State | What it means |
|---|---|
| Silent | Freshness reached the threshold. A silence alert is raised |
| Unknown | The source has no expected interval or activity guarantee, so MonitOps cannot judge it. No failure is claimed |
| Backlog growing | Records are waiting to be processed. The backlog is shown per source |
| Errors rising | Requests are being rejected or quarantined; see OTLP endpoint and Masking |
Related#
Last updated October 2026