Use the worse signal
Degrade status when either reachability or latency crosses a threshold.
The tradeoffThe rule is easy to audit, but threshold choices and observation windows strongly influence the published result.
Inspect the decisionAutomated Status Page
A monitoring pipeline that translates reachability and latency into understandable service states, with public publishing and optional incident automation.
Independent project · Recorded synthetic metric inputsThe 60-second overview3537d26Refresh Career Atlas after public repository changesGrafana Cloud metrics feed a Python status engine with configurable thresholds.
GitHub Actions publishes the resulting status document and page. An optional integration updates Atlassian Statuspage.
A local review passed 139 tests, including thresholds, persistence, component management, and incident behavior.
A dashboard can expose many measurements while leaving a visitor unsure whether a service is working. Status publishing needs a clear decision rule, a timestamp, and a consistent way to handle degraded or missing signals.
Choose a stage to explore its purpose and supporting source.
The Grafana client queries Prometheus reachability and latency. Configuration sets query windows, service checks, and thresholds.
The monitoring configuration defaults to a 15-minute reachability window and a 5-minute latency window.
Read the implementationInspect inputs and outputs captured from the repository. Switching scenarios replays saved results; it does not run cloud services or a model.
{
"reachabilityPercent": 99,
"latencyMs": 100
}operational
Default thresholds: operational requires reachability ≥ 95% and latency ≤ 200 ms. Degraded allows reachability ≥ 75% and latency ≤ 1000 ms. The worse signal wins.
Degrade status when either reachability or latency crosses a threshold.
The tradeoffThe rule is easy to audit, but threshold choices and observation windows strongly influence the published result.
Inspect the decisionMap missing reachability or latency to major_outage.
The tradeoffThe public page avoids showing healthy status without telemetry, but cannot distinguish an actual outage from an observability failure. An unknown state would make that distinction clearer.
Inspect the decisionRun monitoring server-side and publish its JSON result through Pages.
The tradeoffVisitors need no monitoring credentials. They see the most recent published observation, which may become stale if the workflow fails.
Inspect the decisionThe repository’s status, management, and incident tests passed locally on 5 September 2026 using isolated fixtures and mocked integrations.
Supporting sourceThe replay shows why 99% reachability with 500 ms latency is degraded under the default thresholds, and why missing values become an outage.
Supporting sourceA status page is a communication product as much as a monitoring product. Measurement quality, freshness, and the distinction between symptoms and causes matter as much as the color of the status indicator.
Reviewed 5 September 2026. These links point to the source revision used for this case study.
Threshold defaults and observation windows.
monitoring/config.pyAggregation, missing data, and report generation.
monitoring/status_engine.pySchedule and Pages deployment.
.github/workflows/monitor.ymlOptional incident transitions and generated text.
atlassian_statuspage/incident_manager.pyBoundary values, overrides, and persistence.
tests/test_status_engine.pySource revision 4a30431 · View current workflow history ↗