Skip to content
tezvyn:
Menu

Observability: Seeing Inside Your System

Source: Wikipedia: Observability (software)EasyHow cards are made

Observability is the ability to ask new questions about your system's health without shipping new code. It's crucial for debugging distributed systems and is the first step in triaging an outage.

Why it exists

In modern distributed systems, no single person can hold the entire system state in their head. When something goes wrong, you need a way to understand the internal state from the outside. Observability was created to solve this by providing the data to diagnose problems without needing to predict every failure mode in advance.

The mental model

Think of it as the difference between a car's 'check engine' light and a full diagnostic port. The light (monitoring) tells you about a pre-defined problem. The diagnostic port (observability) lets a mechanic ask any question they want about the engine's performance, using telemetry data to find the root cause of any issue, even ones the manufacturer never anticipated.

How it works

Engineers instrument their code to emit telemetry data about its execution, internal state, and communications. This data, often categorized as logs, metrics, and traces, is collected by specialized tools. These tools allow engineers to analyze and query the data to form a picture of the system's health and behavior.

When to use it

Observability is essential for any complex or distributed system where failures are non-obvious. It is the foundation of Site Reliability Engineering (SRE) and is the first step in triaging a service outage. The goal is to minimize the prior knowledge needed to debug an issue, allowing you to explore unknown problems.

When not to use it

For a simple, monolithic application running on a single server, a full-blown observability platform might be overkill. If the system's complexity is low and you can easily reproduce issues locally, traditional logging and direct debugging may be sufficient. The tooling should match the system's complexity.

One canonical example

A user reports that a web page is slow. With observability, an engineer can pull up a trace for that user's request, which shows the request's path through multiple microservices. The trace reveals that one specific service is taking 5 seconds to respond. The engineer then queries metrics for that service and sees its CPU is at 100%. This allows them to pinpoint the problem component without shipping new code or guessing.

Interview question

What is the primary advantage of observability in a complex software system?

  • a.It provides real-time alerts for all predefined error conditions.
  • b.It reduces the overall volume of telemetry data collected from applications.
  • c.It automates the resolution of bugs by pinpointing exact code failures.
  • d.It enables engineers to diagnose unforeseen problems without deploying new code.Correct
Why?

Observability's core benefit is its ability to help engineers understand and diagnose novel or unforeseen issues in a system without needing to modify and redeploy code. Option A describes traditional monitoring, which focuses on known conditions, whereas observability allows for exploration of unknown problems.

Just read this? Test yourself on what you have been reading.

Read the original → en.wikipedia.org

Put your scrolling time to good use

Learn one idea, try a quiz and save useful cards for revision. Tezvyn makes it easy to learn and stay current in your tech field, a few minutes at a time.

The iPhone app is on the way

We are building it. Until it lands, nothing here is held back from you: every interview card, your saved cards, streaks and the job board all work in Safari, plus hundreds of free practice quizzes of thirty questions each. Sign in and it all carries over to the app the day it arrives.

Want it as an icon? Tap Share at the bottom of Safari, then Add to Home Screen. It opens full screen and the cards you have read stay available offline.

Get it on Google PlayiPhone app coming soon

We are hiring for this. Open roles that interview on sre — each one lists the topics its interview covers.

See open roles