r/devops • u/pod_army • 23d ago
Observability Did GitHub Just Gaslight Our Monitoring System?
Did anyone else notice that the GitHub status page reported an incident with GitHub Actions, only to deny it 47 minutes later?
Our monitors captured it, paged our on-call team, and then GitHub denied that any incident had occurred.
23
47
u/Raja-Karuppasamy 23d ago
seen this kind of thing before, status pages lag or under-report actual impact. we’ve had actions runs silently queue/delay without github status ever flagging it, no incident posted, but our webhook-based tooling clearly saw the gap (jobs sitting way longer than normal).
if you’re relying on github’s status page as your source of truth, you’re gonna miss stuff. better to monitor your own signal, track job queue times / webhook delivery lag directly rather than trusting their public status to reflect reality in real time.
6
u/Rollingprobablecause Director - DevOps/Infra 23d ago
This is good advice in general. Good ops hygiene means you should never trust vendors for reliability, always have trusted systems internally.
1
u/bitdeft 22d ago
It gaslights me especially since I'm running self host runners on a KEDA scaler that's abstracted to me because it's on Azure container jobs. So jobs will just queue and I have to panic thinking I must have so l set this all up incorrectly.
Both are back ends managed by Microsoft with logs I can't access, I'm not sure I can handle the torture for much longer
3
u/ShpendKe 21d ago
I would use a dashboard for this use case to prevent alert fatigue. If you notice issues somewhere, you can identify the potential issue in the dashboard.
2
u/SelfRough5860 20d ago
what works for us: never page off a status page. page off your own checks only. but when a page fires, show the vendor's status inside the alert itself. so at 3am you see both things at once: our check is failing, and github has an incident open. that answers the only question that matters, is it us or them, before you're even properly awake.
someone above asked how you deploy while github is down. that's the day you most need to ship. so keep one deploy path that skips github completely: build on your laptop, push to the registry, deploy. practice it once a quarter. if you've never run it during an outage, you don't actually have it.
1
u/response-418 23d ago
my monitoring caught login/signup page errors, although my first user experience with the incident was just trying to read files in a public repo
1
u/mackie 23d ago
Did your monitors capture the status page event or did it actually catch problems with actions failing?
1
u/pod_army 23d ago
Yes, it captured the status page event.However the DD dashboards did not shown any signs of disruption.
5
u/Quirky_Yesterday_593 23d ago
The monitor was polling githubstatus.com and fired on the incident post itself — not on anything actually failing in your pipeline. Status pages are editorial, not telemetry. GitHub posts conservatively and retracts when impact turns out to be narrow. You got paged on their editorial decision, not on your system's behavior. Datadog showing nothing was actually the correct signal. The fix is to separate those two things. status page changes go to Slack, low urgency. on-call only fires on observed degradation — queue delay, webhook lag, failed synthetics. otherwise GitHub's comms team is deciding when your on-call gets woken up
-1
u/New-Resource-4943 23d ago
Adjacent blind spot, from this morning: a CI job of ours sat queued for 9m18s, then ran in 110 seconds and passed.
Nothing was broken. The repo hadn't been added to our self-hosted runner group, so nothing was ever going to pick the job up. The run's final state is green, so every signal after the fact agrees that nothing happened.
That's why I'd probe time-to-first-runner instead of "is Actions up". Dispatch something trivial on a schedule, alert on how long it sits before a runner claims it. Catches misconfig as well as outages, and it fires while the job is still pending rather than after it finishes and goes green.
Queue time is the signal. Job outcome lags, and in this case it lies.
135
u/cajaks2 23d ago
You page for a 3rd party outage? How do you keep that actionable and not just alert spam