Green Dashboards, Burning Users: The Metrics Lie You're Telling Yourself
Photo by Photo by ThisisEngineering on Unsplash on Unsplash
There's a particular kind of engineering confidence that comes from a dashboard full of green. Uptime ticking along at 99.97%. Deployments shipping daily. Error rates sitting at a comfortable fraction of a percent. The on-call engineer sleeps well. The CTO presents the numbers in the all-hands and people clap.
Meanwhile, somewhere in your user base, someone is trying to complete a checkout flow that technically works — it returns HTTP 200, it logs no exceptions — but takes eleven seconds to load on a mid-tier Android device over a 4G connection in rural Ohio. They give up. They don't file a ticket. They just leave.
Your dashboard never knew they existed.
The Vanity Metric Trap
Vanity metrics are seductive because they're easy to collect, easy to visualize, and easy to improve in isolation. Response time? Throw a cache in front of it. Error rate? Suppress the noisy alerts. Deployment frequency? Automate the pipeline and ship more often. All of these things can matter. The problem is when they become the goal rather than a proxy for the goal.
The actual goal — the thing that keeps the lights on — is that real humans accomplish real things inside your product and feel good enough about it to come back. That's it. Everything else is instrumentation.
When teams optimize for the instrumentation instead of the outcome, something insidious happens: the metrics improve while the experience quietly degrades. You get faster at shipping broken things. You maintain uptime for features nobody can actually use. You hit your SLA while violating the spirit of why the SLA existed in the first place.
What "Healthy" Looks Like on Paper vs. in the Wild
Consider a mid-sized SaaS company — not a hypothetical, this is a pattern that plays out constantly — with a B2B invoicing product. Their infrastructure metrics were legitimately solid. Sub-100ms API responses on average, 99.95% uptime, a CI/CD pipeline that would make a DevOps conference speaker jealous.
But their activation rate for new accounts was tanking. Users would sign up, poke around, and disappear within 72 hours. The support team kept seeing the same vague feedback: it's just confusing or it didn't do what I expected.
The engineering team's dashboard had no visibility into any of that. There was no metric for "user reached the first meaningful milestone in the product." There was no alert for "new account has been idle for 48 hours without completing onboarding." The system was technically healthy. The business was bleeding.
Once they instrumented for outcomes — specifically, tracking whether a user successfully created and sent their first invoice within the first session — everything changed. They discovered a specific flow where a validation error was silently failing on certain browser configurations. HTTP 200. No logged exception. Just a user staring at a form that would never submit.
Five years of solid uptime metrics had never caught it.
The Metrics That Actually Correlate With Reality
So what should you be measuring instead? Or rather, in addition?
Task completion rate. Can users actually finish the thing your product exists to help them do? Not "did the API return a success code," but did the human on the other end accomplish their goal? This requires real instrumentation — funnel tracking, session analysis, and sometimes just watching recordings of real user sessions.
Time-to-value. How long does it take a new user to experience the core benefit of your product? This is one of the most predictive metrics for long-term retention, and almost nobody tracks it at the infrastructure level.
Error recovery rate. When something goes wrong — and it will — do users recover and continue, or do they abandon? A product that handles failure gracefully can have a worse raw error rate than a competitor and still retain more users.
Real-user performance, not synthetic benchmarks. Your p95 response time from a load test in us-east-1 is not the same as what your user in Phoenix on a congested home network experiences at 7pm. Web Vitals, field data from the Chrome User Experience Report, and RUM (real user monitoring) tools give you the actual picture.
Rage clicks and dead ends. Tools like FullStory, LogRocket, or even a well-configured Hotjar setup will show you users frantically clicking buttons that don't respond, or hitting pages with no clear path forward. These aren't engineering metrics in the traditional sense, but they're signals of engineering failures.
Shifting the Culture, Not Just the Stack
Here's the uncomfortable part: this isn't a tooling problem, it's a prioritization problem. Most teams already have access to enough data to know their users are struggling. They just don't look at it in the same room where engineering decisions get made.
The fix starts with getting outcome metrics into the same dashboards as infrastructure metrics. When your on-call engineer sees "checkout completion rate dropped 8% in the last hour" next to "error rate nominal," they start asking different questions. They start looking in different places.
It also means rewriting how you define incidents. A silent failure that causes 15% of users to abandon a critical flow is an incident, even if PagerDuty never fires. Building that definition into your runbooks and your postmortem culture is what separates teams that learn from the ones that just respond.
Finally, it means being honest about what your SLAs and SLOs are actually promising. An SLO that says "99.9% of requests return within 500ms" is a contract with your infrastructure, not with your users. Writing SLOs that include user-facing outcomes — "95% of users who initiate checkout complete it within 3 minutes" — forces the entire system to be measured against what actually matters.
The Dashboard Isn't Lying — You're Just Reading the Wrong Story
Your monitoring stack isn't broken. It's doing exactly what you told it to do. The problem is the story you decided to tell with it.
Green dashboards feel good. They feel like proof that the work is working. But the only proof that actually matters is a user who opened your product, did the thing they came to do, and came back tomorrow to do it again.
Instrument for that. Alert on that. Build your incident culture around that.
Everything else is just a number that makes the all-hands presentation look nice.