Observability

In a distributed system, you can't just "log into the server" to see what's wrong. You might have 1,000 servers.

Observability is the ability to understand the internal state of a system based on the data it generates.

It is built on three main pillars: Logging, Metrics, and Tracing.


1. Logging

A record of a specific event that happened at a specific time.


2. Metrics

Numerical data measured over time.


3. Tracing

Tracking a single request as it travels through multiple services.

graph LR
    User --> Gateway[Gateway: Trace_ID=123]
    Gateway --> S1[Auth Service: Trace_ID=123]
    Gateway --> S2[Order Service: Trace_ID=123]
    S2 --> DB[(Database: Trace_ID=123)]

Observability vs. Monitoring


Key Takeaways

A system that isn't observable is a black box. You aren't managing it; you're just hoping it works.