Observability is the ability to understand a system's internal state from its external outputs — through logs, metrics, and traces. It's essential for operating, debugging, and maintaining systems (especially distributed ones), where you can't manage what you can't see.
The three pillars of observability
LOGS → timestamped records of events (what happened) → detailed, for debugging specific issues
METRICS → numerical measurements over time (CPU, latency, request rate, error rate) →
aggregate health/performance; dashboards; alerting
TRACES → follow a request's path through the system (across services) → understand flows,
find bottlenecks/failures in DISTRIBUTED systems (which service was slow?)
→ together: understand WHAT happened, the OVERALL state, and the PATH of requests.
