A field guide to the OSS observability stack in 2026, sorted by pillar, with honest notes on where self-hosting pays off and where the ops burden bites.
Every team that runs its own observability stack starts from the same place: a Datadog quote that grew a limb overnight, and a suspicion that most of the bill is ingesting logs nobody reads. Self-hosting the open-source stack is the obvious counter-move. It's also more work than the vendor blog posts admit. This is the map we hand teammates when they ask what to actually run, sorted by pillar, with notes on where the ops burden is real.
If you're weighing this against the managed platforms first, the broader set of observability tools is compared separately. This piece is only the OSS half.
Prometheus is the floor. It's the de facto standard for pulling metrics off Kubernetes and everything around it, the query language is everywhere, and the exporter ecosystem covers anything you'd want to scrape. It's mature, boring in the good way, and a single instance runs happily for a long time. The catch is that a single instance is exactly what you get: no native long-term storage, no clustering. Once you outgrow one box, you're picking a scaling layer.
That layer is Thanos or Mimir. Both give you long retention on object storage and a global query view across many Prometheus servers. Thanos bolts onto existing Prometheus with sidecars and is the gentler adoption path. Mimir is a heavier, more integrated system built for very large fleets, and it wants more of your attention to run well. Neither is a weekend project.
VictoriaMetrics is the one we reach for when the Thanos/Mimir operational tax feels steep. It's a drop-in Prometheus-compatible store that eats less RAM and disk for the same data, scales from single-node to clustered, and stays quiet in production. Maturity is solid now. If you're standing up long-term metrics fresh rather than extending an existing Prometheus estate, it's the least painful option on this list.
Loki treats logs the way Prometheus treats metrics: index the labels, not the full text. That keeps storage cheap and makes it a natural fit next to Grafana. The trade is that unindexed queries over big time ranges can drag, and getting label cardinality right takes a couple of painful iterations. For most Kubernetes shops it's still the default.
OpenSearch is the other camp: a full inverted index, fast arbitrary text search, the old ELK muscle memory. It's the right call when investigators live in ad-hoc queries and need speed on any field. It also costs more to run: more nodes, more memory, more babysitting of shard health. Power for operational weight.
Vector isn't a store, it's the plumbing. Use it to collect, transform, and route logs before they land anywhere. It's fast, its config is sane, and it drops the volume you forward by filtering junk at the edge, which directly shrinks whatever you pay downstream.
Tempo is the trace store that matches the Grafana stack. It skips indexing entirely and keys off trace ID, so storage is cheap and it scales without much fuss. If you've already committed to Grafana and Loki, Tempo is the path of least resistance.
Jaeger is the older, established option with a richer standalone UI and deeper roots in the tracing world. Pick it when tracing is a first-class workflow for your team rather than something you glance at from a dashboard. Both are mature; the choice is mostly about which UI your engineers will live in.
Grafana is the one genuinely uncontested piece. It's the visualization layer for basically all of the above, plus a hundred data sources you'll never use. It's mature, it's stable, and there's no real OSS competitor worth naming. You will run Grafana. The only question is what feeds it.
Wiring six projects together is the real cost of this stack. Two projects try to collapse that.
SigNoz bundles metrics, logs, and traces on a ClickHouse backend behind one UI, built OpenTelemetry-native from the start. It's the closest OSS thing to a single-pane Datadog replacement, and for a mid-size team that doesn't want to become a Grafana-stack operator, it's a serious default.
OpenObserve aims at the same target with a heavy emphasis on low storage cost, leaning on object storage to keep the bill down at volume. It's younger and less proven than SigNoz, but the storage economics are hard to argue with if log volume is your pain.
Underneath all of it sits the OpenTelemetry Collector. Instrument your apps with OTel, ship through the Collector, and every tool above becomes swappable. Standardize here first, before you pick backends, and you never re-instrument to change vendors. This is the single decision that ages best.
| Pillar | Default pick | Scale / alternative |
|---|---|---|
| Metrics | Prometheus | VictoriaMetrics, Thanos, Mimir |
| Logs | Loki | OpenSearch; Vector to ship |
| Traces | Tempo | Jaeger |
| Dashboards | Grafana | (no real rival) |
| All-in-one | SigNoz | OpenObserve |
| Instrumentation | OpenTelemetry Collector | β |
Self-hosting wins when your volume is high and predictable, when you've got at least one person who genuinely enjoys running infrastructure, and when a fixed monthly compute bill beats a per-GB meter that spikes with every incident. At scale, the savings against a managed platform are not subtle.
It stops being worth it when the team is small and every hour spent tuning Loki cardinality is an hour not spent on the product. The stack is free; the pager that fires when your metrics backend falls over is not. If losing observability during an outage would leave you blind at the worst moment, paying someone else to keep it up is a fair trade. Be honest about which team you are.
For most teams standing this up in 2026, the boring answer: OpenTelemetry Collector for instrumentation, Prometheus with VictoriaMetrics for metrics, Loki with Vector shipping for logs, Tempo for traces, Grafana on top. It's proven, it's cohesive, and the operational burden is understood.
If you'd rather not operate six things, run SigNoz instead and revisit when you outgrow it. Either way, put OpenTelemetry in first so the backend stays a decision you can change later.
Start with OpenTelemetry no matter what, then default to the Grafana stack if you have the ops appetite and SigNoz if you don't. Don't self-host to save money on a small footprint; the math only turns in your favor at volume. And whatever you pick, budget for the person who keeps it running, because that cost is real even when the license is zero.
Get the latest tutorials, guides, and insights on AI, DevOps, Cloud, and Infrastructure delivered directly to your inbox.
Both promise to find your slow query at 3am. One bills by data ingested, the other by host-hour. Here's how that shakes out in a real ops budget.
A shared API key between two internal services proves nothing about who is calling. mTLS makes every service present a cryptographic identity instead.
Explore more articles in this category
The observability market is huge and the pricing is a minefield. This is the map to the tools that matter, what each is best at, and how to avoid a runaway bill.
Cloud bills grow quietly until someone asks why. This is the map for cutting spend without cutting reliability: where the money actually goes, the levers that work, and the tools worth paying for.
Datadog bills climb quietly until finance forwards the invoice. Here's the playbook we run to cut spend hard while keeping every signal that matters.
Evergreen posts worth revisiting.