The guide

Open source observability, without the lock-in

Instrument once with OpenTelemetry. Keep logs, metrics, and traces where you control them and can connect them. Spend your nights asleep. Here is the practical version.

What is open source observability?

Observability (often written o11y) is the ability to understand what a system is doing from the signals it emits: metrics, logs, and traces. Open source observability means producing and analyzing those signals with open standards and open source software, so you can read the code, run it wherever you like, and change components without rewriting your instrumentation.

The keystone is OpenTelemetry, the vendor-neutral CNCF standard for generating and shipping telemetry. Instrument with it once, and any compatible backend can receive the data.

Why teams choose open source

  • No lock-in. OpenTelemetry instrumentation outlives any one backend.
  • Cost you can reason about. You choose retention, sampling, and where data lives, often on cheap object storage, and you can put guardrails on cardinality.
  • Data control. Self-host to keep telemetry inside your own cloud account or region.
  • Transparency. When something behaves oddly, you can read the source.

The open source observability stack

Most teams end up with four layers. You can mix tools per layer, or use one platform for several.

LayerJobOpen source options
InstrumentGenerate telemetry from your code and infrastructureOpenTelemetry SDKs and auto-instrumentation
CollectReceive, process, sample, and route dataOpenTelemetry Collector, Fluent Bit
Store and queryKeep signals affordable and searchablePrometheus or Mimir (metrics), Loki or OpenSearch (logs), Jaeger or Tempo (traces), or one backend for all signals
ActDashboards, SLO alerts, and incident workflowsGrafana, Alertmanager, or the dashboards and alerts built into your backend

Choosing a backend: one tool per signal, or one for all?

The store-and-query layer is where open source options differ most. Broadly, there are three approaches. Projects within each row are listed alphabetically; this is a map, not a ranking.

ApproachOpen source examplesOften fits
One tool per signalJaeger (traces), OpenSearch (logs), Prometheus (metrics), with Grafana for dashboardsTeams that already run some of these and want mature, specialized projects
A composed stack from one project familyGrafana with Loki (logs), Mimir (metrics), and Tempo (traces)Teams that want specialized stores that share a query and dashboard experience
One backend for all signalsHyperDX (ClickStack), OpenObserve, SigNozTeams that want logs, metrics, and traces in one system to operate and query

Whatever you choose, judge it by how quickly an engineer gets from a symptom to a cause: can you jump from a metric spike to example traces to their logs? What do retention and high cardinality cost? Can your team write the query language under pressure? Vendor benchmarks, from any project, are a starting point; measure on your own data. For the wider landscape, see the A to Z directory of observability tools.

Disclosure: o11yparadise's editor, Chaitanya Sistla, works at OpenObserve. See our editorial standards.

Get started in five steps

  1. 1

    Instrument once with OpenTelemetry

    Add the SDK or zero-code auto-instrumentation for your language, and set service.name on every service.

  2. 2

    Run the OpenTelemetry Collector

    Deploy it as an agent or gateway (in Kubernetes, often a DaemonSet plus a gateway) to batch, enrich with Kubernetes metadata, and tail-sample traces.

  3. 3

    Export over OTLP to your backend

    Point the Collector's OTLP exporter at the backend you chose, and make sure you can pivot between logs, metrics, and traces using shared attributes and trace IDs.

  4. 4

    Alert on SLOs, not on noise

    Define SLOs for key user journeys and page on error-budget burn. Keep cause metrics on dashboards.

  5. 5

    Guard cost and cardinality

    Keep unbounded IDs out of metric labels, sample normal traces, and set retention per signal.

Then make it calm: read how teams used tail-based sampling, symptom-based alerting, and canary releases in the stories.

FAQ

What is open source observability?

Open source observability means collecting, storing, and analyzing telemetry (logs, metrics, and traces) with open source tools and open standards such as OpenTelemetry, instead of a closed, proprietary agent and backend. You can read the code, self-host or use a managed service, and switch components without re-instrumenting your applications.

Can I use OpenTelemetry with a commercial observability backend?

Yes. OpenTelemetry is vendor-neutral, and most commercial observability services accept OpenTelemetry data, either over OTLP directly or through the Collector. Instrumenting with OpenTelemetry keeps the choice between open source and commercial backends open.

Is one backend for all signals better than separate tools?

It depends on your team. One backend means fewer systems to operate and easier pivots between logs, metrics, and traces. Separate, specialized tools can be a better fit if you already run them well or need a capability one project does best. Either way, shared resource attributes and trace IDs are what make the signals connect.

Should I self-host or use a managed observability service?

Self-hosting gives you full control over data location and cost, and suits teams already running Kubernetes and object storage. A managed service removes upgrades and scaling work. With OpenTelemetry instrumentation you can start with one and move to the other later.

Sources and further reading

Related practices: what o11y means, unified observability, the golden signals, SLOs and error budgets, and data freshness. For investigations that go past the graphs, read Beyond the Dashboard.