Stephen Townshend
Developer Advocate (SRE)
Developer Advocate (SRE)
Recently I caught up with Jamie Allen on Episode 67 of the Slight Reliability podcast to discuss the idea of a single pane of glass (SPOG).
Jamie had written an article titled The Single Pain of Glass which coincidentally was what I titled Slight Reliability Episode 10. I thought given our shared use of puns and this topic that it was worth a conversation!
So, what is a single pane of glass? Is it an idea with practical application? How does it fit into the world of modern observability?
It was explained to me once using a metaphor. Imagine you are the ruler of a kingdom. A single pane of glass in this context might be a magic mirror which shows you a birds eye view of your kingdom. Just by perusing this magic mirror you can see the wellbeing of your citizens, the progress of your initiatives, and whether there is anything which needs your immediate attention.
Heading back to the real world, a single pane of glass is some kind of central view into the health and status of... something. That something depends on your context:
I've heard others criticize the "single pane of glass" concept because it is impossible to show everything you need to know about a system or service in a single view.
If the phrase "single pane of glass" disagrees with you, perhaps you could think of it it as a first pane of glass. A centralized dashboard that tells us it, at a high level, about the overall status of a thing we care, including:
At SquaredUp we use the term observability portal as a modern take on the single pane of glass. We think of it as more than a dashboard, but a hub for understanding the state of your systems and services, and an entry point for drilling into the detail.
As Jamie put it in our conversation, you can't track everything at scale. The single or first pane of glass is a tool we can use to keep track of how things are going without overwhelming ourselves and others with detail.
When I think of modern observability I think of detail. Distributed tracing and OpenTelemetry come to mind, as well as vast volumes of telemetry data. So... where does our single pane of glass fit into this?
I want to tackle this in two parts.
As I said earlier, a single pane of glass summarizes the state of something. Provided it distils all the detail into an easy to understand narrative, it can provide a self-service way for other engineers (from other teams) to check the health of your services.
It also acts as a starting point for investigating issues. Modern dashboarding tools provide a way to click on an element to drill-down into the detail. For example, a dashboard for an app indicates the authentication service is having issues. Being able to click on that status and be taken to a more detailed dashboard about that service is helpful.
The opposite of drilling down is rolling up, which is another handy application for the single pane of glass. When teams roll-up the status of the services they own and operate, this can be collated and summarized in a single pane of glass. This gives the teams who own each component ownership of their monitoring, while still keeping leadership informed and aware of the state of things.
You might be thinking... "Why not just use alerts? What value is the dashboard here?". The issue with relying solely on alerts is that they explicitly define thresholds. They don't show more subtle trends or changes over time, such as slowly increasing build times.
From my experience, the single pane of glass concept resonates most with executives. It provides an overview of the state of the business divisions or products they are responsible for. Fundamentally, it helps inform decision making without over-burdening leaders with unnecessary levels of detail.
Here are some other roles who can benefit from the single pane of glass (other than executives):
Dashboards are a bit like documentation. They are an asset that needs to be carefully crafted and maintained. Here's some questions to ask yourself as you build a single pane of glass:
Another challenge that most organizations face is that the data required to build a SPOG is scattered across different tools and locations. How do we pull it all together into a single view?
One approach is to have a layer on top of all of your tools which pulls in the data from each (in realtime). At SquaredUp we're taking this a step further by leveraging a data meshto correlate objects coming from different tools so that it feels like the data is stored in one location.
A single pane of glass is not about cramming everything we need to know about something into a single view. That's impractical, and frankly impossible. Instead, think of them as:
I would go so far as to say that trying to design a single pane of glass holds value in itself. It forces you to think about what "healthy" looks like for your service or system, and how you can measure that.