yingjie@memoir
Skip to content

Concepts

Basics

Observability means instrumenting the target system so that we can understand what's happening inside without knowing its internal structure, making it easier to observe system behavior and debug.

#TODO: Reliability, metrics, SLI, SLO - haven't touched on these yet.

Distributed tracing allows us to observe what happens across different services for a single request in a distributed architecture.

To understand distributed tracing, we need to understand the roles of different components:

  • Logs: Timestamped messages emitted from services or other components
  • Spans: A span represents a unit of work. Spans carry attributes called span attributes.
  • Traces: Composed of multiple spans. The first span is the root span. Spans have parent-child relationships.

Many observability backends use waterfall diagrams to visualize traces: trace

Context Propagation