Observability in modern systems means knowing what’s happening inside your application without stopping it. To achieve this, we use three pillars: Logs, Metrics, and Traces.

Think of them like a car’s dashboard, black box, and GPS combined. Each serves a different purpose, but together they tell the full story.

Logs — The Black Box Recorder

  • What it is: Logs are detailed text records of what happened in your system at a given moment.
  • Example:
2025-08-04 11:30:45 INFO OrderService: Order 123 created successfully
  • Analogy: Like the black box in an airplane that records everything happening inside the cockpit.
  • Where it helps:

— Debugging a single event or error

— Forensics after a crash

— Tracking user actions

Downside: Logs are great for deep dive into a specific problem, but reading thousands of logs is overwhelming. most of the logs are some mundane information.

Metrics — The Car Dashboard

  • What it is: Metrics are numerical measurements over time, like CPU usage, request latency, or error rate.
  • Example:
  • CPU = 75%
  • Order API latency = 120ms
  • Analogy: Like your car dashboard showing speed, fuel level, and engine temperature.
  • Where it helps:

— Real-time monitoring

— Trend analysis (is latency increasing?)

— Setting alerts (e.g., “Alert me if error rate > 5%”)

Downside: Metrics tell you something is wrong, but not why.

Traces — The GPS Tracker for a Request

  • What it is: A trace shows the entire journey of a request across multiple services, breaking it into spans (smaller steps).
  • Example:

— User clicks “Buy” → API Gateway → Order Service → Payment Service → Inventory Service

— Trace shows time spent at each step.

  • Analogy: Like a GPS tracker for your food delivery order — it shows every stop and how long it waited there.
  • Where it helps:

— Finding where latency comes from

— Identifying which service failed in a chain

— Correlating issues across microservices

Downside: Traces are expensive to store for every request, so usually sampled.

How They Work Together (The Full Picture)

In observability:

  • Metrics show: “Something is wrong with Order API — latency is 5x higher.”
  • Logs show: “Order ID 123 failed because Payment API threw NullPointerException.”
  • Trace shows: “90% of time spent in Payment Service due to DB slowdown.”

Together, they make your system observable, debuggable, and reliable.

Resources

https://medium.com/@27.rahul.k/distributed-tracing-with-opentelemetry-in-spring-boot-microservices-be019da10325