Self-Hosted Observability Stack vs SaaS: How to Decide
Self-hosted observability stack vs SaaS — a cost and trade-off analysis to help engineering teams decide which approach fits their size, budget, and operational capacity.
Your observability bill arrived and it is larger than you expected. Or you are designing a new system and trying to decide upfront whether to buy or build your monitoring stack. Either way, you face the same question: should you self-host your observability infrastructure, or pay a SaaS vendor to run it for you?
The answer is not obvious, and the wrong choice in either direction is expensive — either in money or in engineering time. Here is how to think through it clearly.
The True Cost of Each Option
The framing of "self-hosted is cheap, SaaS is expensive" is too simple. Both options have real costs. The question is which type of cost fits your team better.
SaaS Observability Costs
SaaS observability vendors — Datadog, New Relic, Honeycomb, Grafana Cloud, Dynatrace — charge based on usage dimensions that compound:
- Hosts or containers monitored
- Data ingested (GB of logs, number of spans, number of metric series)
- Retention duration
- Feature modules (APM, RUM, synthetics, security monitoring)
The compounding effect means that costs scale non-linearly with system size. A team with 20 services that runs for two years often pays significantly more than they initially modeled, because their initial estimate was based on current usage rather than usage at maturity.
The value in return: zero infrastructure to operate. No databases to upgrade. No storage to provision. No on-call for the observability layer itself. Your engineers spend their time on the product, not on maintaining the tools used to observe it.
Self-Hosted Observability Costs
Self-hosting the open-source stack — Prometheus or Mimir for metrics, Loki for logs, Tempo for traces, Grafana for dashboards — shifts costs from subscription fees to compute, storage, and engineering time.
Compute and storage: An observability stack for a medium-sized system needs dedicated resources. Prometheus with significant time-series cardinality and long retention periods requires meaningful memory. Loki's ingestion and query paths need their own capacity. Tempo's object storage costs are low but the compute layer is not trivial. Modeling this honestly at your scale before committing is essential.
Engineering time: This is the cost that most teams underestimate because it does not appear on a single invoice. Self-hosting Prometheus and Loki in production means:
- Initial setup: multiple days of engineering work
- Ongoing upgrades: each major version release requires testing and migration work
- Scaling events: when your cardinality grows, Prometheus needs tuning or you migrate to Mimir
- Incidents in the observability layer itself: when your alerting system goes down, your team loses visibility during the moment they need it most
- On-call responsibilities for the stack, in addition to the product
For a team with a dedicated platform engineering function that already operates production infrastructure, this overhead is absorbed. For a product team without that function, it is a significant hidden cost.
The Decision Framework
Work through these questions in order. The first question that produces a clear answer is usually sufficient.
1. Do you have engineering capacity to own observability infrastructure?
Count the engineers who can be responsible for operating a production monitoring stack on top of their other work. Not engineers who could learn to do it — engineers who have time and will maintain ownership.
If the answer is zero or one, self-hosting is not appropriate unless the stack is extremely simple. A single engineer owning both product infrastructure and observability infrastructure is a concentration of risk that will eventually cause problems during a simultaneous incident.
If yes: continue to the next question. If no: use a managed option (SaaS or Grafana Cloud).
2. Is your current or projected observability spend material relative to your total infrastructure budget?
"Material" is relative. A startup where observability costs equal 30% of total infrastructure spend has a different calculus than a growth-stage company where it is 5%. If the spend is not material and the product is growing, the cost of the engineering time required to migrate and maintain a self-hosted stack is almost certainly higher than the subscription savings.
If yes, spend is material: model the self-hosted cost carefully before committing (see below). If no: the SaaS option is likely the right choice for now.
3. Does your usage pattern favor self-hosting economically?
Certain usage patterns make self-hosting significantly more economical than SaaS:
- High host or container counts with standard metric requirements. Per-host SaaS pricing penalizes dense deployments.
- High-cardinality custom metrics. Prometheus handles high cardinality at low cost; most SaaS vendors charge per unique metric series.
- High log volume with short retention needs. Log ingestion costs from SaaS vendors can be significant for high-throughput systems that only need logs for a few days.
- Long-lived, stable systems where the observability needs are well-understood and unlikely to require frequent reconfiguration.
If your usage pattern does not match any of these, the cost savings from self-hosting are likely smaller than estimated.
Modeling the Self-Hosted Cost
Before committing to self-hosting, build a realistic cost model that includes:
- Compute: size the Prometheus/Mimir, Loki, and Tempo instances based on your expected series cardinality, log ingestion rate, and trace volume. Add 50% headroom for growth.
- Storage: Loki and Tempo use object storage (S3 or equivalent). Model your retention requirements and estimate storage costs.
- Engineering setup time: estimate the initial build at 1-3 weeks of senior engineering time, depending on complexity.
- Ongoing maintenance: estimate 2-4 hours per month per engineer with ownership, plus one week per year for major upgrades.
- Risk premium: add a cost factor for the risk of an observability outage coinciding with a product incident. This is hard to quantify but real.
Compare this total cost to the SaaS alternative at the same scale. The margin is often smaller than expected.
A Graduated Approach
Many teams find a middle path:
- Start with a SaaS option to get observability working immediately.
- As costs grow and the system stabilizes, evaluate whether self-hosting specific components (particularly logs) makes sense.
- Migrate the most cost-sensitive components first while keeping the rest on SaaS.
Using OpenTelemetry for instrumentation from the start makes this migration straightforward — your application code does not change, only the export destination.
The Bottom Line
Self-hosting your observability stack is the right choice if you have platform engineering capacity, high usage volume in cost-sensitive dimensions, and a stable enough system that the migration investment is worth it. For most teams earlier in the lifecycle, the engineering time cost of self-hosting exceeds the subscription savings.
If you are making this decision for a real system and want a second opinion grounded in production experience, talk to Clixo. We have shipped systems at both ends of this spectrum and can give you a direct recommendation.