Building the studio HUD collectors: 26 monitors, a fake outage, and a token-scope trap
2026-07-15
The studio HUD watches 26 uptime monitors and collects metrics across a handful of services, and the two bugs that ate the most hours were not crashes. One was a status that lied, and one was a token that was valid and useless at the same time.
The HUD is the thing that tells me whether the pipeline behind Particular Labs is actually running. Building the collectors was mostly boring plumbing. The interesting part was the two failures that looked nothing like their cause.
Why was the dashboard showing unhealthy when nothing was down?
Because the unhealthy was cosmetic. One collector reported status from a field that was set once and never refreshed, so it kept insisting a service was degraded long after the service was fine. Nothing was actually down. The dashboard was just confidently wrong, which is worse than blank, because a red light you cannot trust trains you to ignore red lights.
The fix was not on the service. It was making the status reflect a live probe instead of a cached value that had no expiry. The lesson is old and I relearned it anyway: a health check that reads a stored field is not a health check, it is a memory of one.
What was the token-scope trap?
This one cost me an afternoon. I had a token that owned the asset I was trying to read. It was the right account, the right resource, a valid token. It still got denied.
The trap is that on this provider the token's scopes are frozen at the moment you generate it. Scope is a separate axis from access. Owning the asset does not mean the token you are holding was minted with permission to touch it. I kept re-checking the asset permissions, which were correct, when the actual problem was that the scope I needed did not exist in that particular token and never would, because you cannot add a scope to a token after it is issued. You regenerate.
I lost the time because I assumed access and scope were the same thing. They are two locks on the same door, and I kept trying the key that opened the wrong one.
What would I tell someone building their own ops HUD?
Two things. First, make every status earn its color from a real check, because a dashboard that lies is a liability you will act on. Second, when a token is denied but everything about the account looks right, check whether the provider freezes scopes at generation before you spend an hour auditing permissions that were fine all along.
The 26 monitors are the easy part. The hard part is that each one is a promise you will believe it.
If you are building the observability layer for your own systems and want it to tell the truth, I do this for a living.
If this sounds like your Tuesday, I set these up for a living. Work with me
Get the weekly note
One email a week: what I built, what it cost, what it returned. Real receipts. Unsubscribe anytime.