The honest microservices observability stack in 2026 is three layers:
- Per-second metrics at every pod — agent-level collection that catches OOMs, restarts, and transient saturation that polling misses.
- Request paths across services — OpenTelemetry traces that show which service, and which span, made a request slow or made it fail.
- Log correlation across services — structured logs with consistent trace IDs so an incident can be reconstructed without grepping.
Netdata covers all three on the same agent. Per-pod metrics arrive at one-second resolution, auto-discovered, with ML on every collected metric. Logs are queried where the OS writes them, and application logs with their trace IDs arrive over OTLP into Netdata Logs Management, stored with every field indexed. OpenTelemetry traces arrive over OTLP (gRPC or HTTP) from your SDKs or an OpenTelemetry Collector, and are stored and indexed on your own infrastructure; you explore them in the Traces tab of Netdata Cloud, next to the metrics and logs of the same nodes, with a duration heatmap, a full waterfall for every trace and every span attribute your instrumentation recorded. There is no separate Jaeger or Tempo to deploy for OpenTelemetry-instrumented services.
See distributed tracing for microservices for the setup and the trace workflow.