What this system can and cannot tell you
- The monitored devices have no battery and no UPS. They cannot report their own power loss. Every conclusion here is inferred from the absence of an expected signal.
- A mains failure, an internet outage, a router reboot, a device crash and a fault in this monitoring pipeline all produce identical silence. This system separates them by probability, not observation, and it will sometimes be wrong.
- Outage start times are bounded by the last received heartbeat, so they carry up to 30 seconds of uncertainty until the device reboots and reports its own shutdown timestamp.
- Detection latency is at minimum three missed heartbeats. This system is not, and cannot be, an instantaneous power-loss alarm. If you need sub-second detection, you need a hardwired mains-sense relay, not a heartbeat.
- A green tile means “we heard from it recently” — nothing more. It is not a statement about the health of the equipment the device is watching.
Reduced guarantees: Running on a serverless platform, where no in-process timer survives between invocations. Detection is driven externally by GET /api/cron/detect - if nothing is calling it on a schedule, nothing is being monitored. See docs/DEPLOYMENT.md.
The narrative layer is running in deterministic mode: no Anthropic credentials are configured, so explanations come from the built-in scoring engine rather than a language model. Detection and alerting are unaffected — they never depend on it.
Service level (last 24 hours)
Heartbeat success rate
100.000%
Error budget remaining
100%
Mean time to detect
622.6s
The live event stream is disconnected. Device states shown below were last confirmed 0 seconds ago and should not be treated as current.
State store
redis+postgres
Devices
- Last seen
- 1h 4m ago
- Interval
- 9.0s obs → 15s used (clamped)
- Success
- 100.00%
- Seq gaps
- 0
- Clock skew
- 559ms
Risk score unavailable — only 7 samples collected (12 needed).
- Last seen
- never
- Interval
- 30s nominal
- Success
- 100.00%
- Seq gaps
- 0
- Clock skew
- —
No latency samples yet
Risk score unavailable — only 0 samples collected (12 needed).
- Last seen
- never
- Interval
- 30s nominal
- Success
- 100.00%
- Seq gaps
- 0
- Clock skew
- —
No latency samples yet
Risk score unavailable — only 0 samples collected (12 needed).
- Last seen
- never
- Interval
- 60s nominal
- Success
- 100.00%
- Seq gaps
- 0
- Clock skew
- —
No latency samples yet
Risk score unavailable — only 0 samples collected (12 needed).
Event stream (black box)
No events yet. Heartbeats, state changes, sequence gaps and alert dispatches appear here as they are appended to the log.