Should you bring observability in-house? Calculate the full cost first
Compare self-hosted and managed observability costs, including infrastructure, engineering time and migration, with a USD example and editable worksheet.

A lower software bill does not automatically mean a lower total cost. Before bringing observability in-house, compare infrastructure, engineering time, migration and ongoing operations against a managed service meeting the same requirements. Calculate cash spending separately from allocated staff time.
Replacing a subscription with an open-source stack changes who performs the work and how you pay for it. Your team takes responsibility for keeping telemetry available, serving investigations and delivering alerts.
How can self-hosting use less cash but cost more overall?
This example uses hypothetical US dollar amounts (USD), excluding tax, for a constant workload with equivalent requirements assumed. Existing staff perform all work without additional payroll, and neither option requires a dedicated equipment purchase. The inputs are not market rates, supplier quotes, salary benchmarks, customer results or an exchange-rate conversion.
| Assumption | In-house | Managed |
|---|---|---|
| Monthly non-labour spending | US$2,500 | US$6,500 |
| Monthly engineering hours | 80 | 15 |
| Loaded hourly rate | US$100 | US$100 |
| One-off transition spending, excluding labour | US$2,000 | US$1,000 |
| One-off transition engineering hours | 160 | 50 |
The next table applies these inputs over twelve months. Engineering hours and their allocated cost describe the same work, so hours are not another monetary line to add to the total.
| First-year result | In-house | Managed |
|---|---|---|
| Attributable cash spending, including transition | US$32,000 | US$79,000 |
| Engineering hours, including transition | 1,120 | 230 |
| Allocated cost of those engineering hours | US$112,000 | US$23,000 |
| Total economic cost: cash + allocated labour | US$144,000 | US$102,000 |
In-house hours are 80 × 12 + 160 = 1,120. Managed hours are 15 × 12 + 50 = 230. The 890-hour difference comprises 780 recurring hours and 110 transition hours.
Self-hosting uses US$47,000 less cash, allocates US$89,000 more labour and has US$42,000 higher total economic cost in this example.
The cash saving matters to a business preserving cash. The engineering commitment matters to a team with other work to deliver. Allocated staff time is not an additional invoice, but the capacity still needs to be available.
What service and workload are you comparing?
Hosting Grafana, operating a telemetry backend and running the full observability service are different responsibilities. Use the data flow to identify ownership.
| Stage | Responsibilities to allocate |
|---|---|
| Collect | Instrumentation, collector deployment, filtering, buffering and delivery checks |
| Store | Ingestion, persistence, retention, deletion, replication and recovery |
| Explore | Query performance, dashboards, correlation and user access |
| Notify | Rule evaluation, routing, escalation and notification delivery |
| Operate | Capacity, upgrades, security, incident response, documentation and support |
For each responsibility, name the owner under both options. Mark work which remains with your team when you buy a service. Instrumentation, useful alert definitions and telemetry selection still need ownership unless the contract explicitly includes them.
Include a hybrid option where appropriate. Your team might retain collectors, dashboards and alert definitions while buying managed storage and query operations. Price the specific responsibility boundary you intend to adopt.
Complete a shared requirements checklist before requesting quotes or sizing infrastructure.
| Requirement | Record in the comparison |
|---|---|
| Metrics | Active series, sample rate, collection intervals and histogram types |
| Logs | Accepted GB/day, peak throughput, indexed fields and query patterns |
| Traces | Received spans/second, retained volume, sampling and investigation needs |
| Retention | Searchable retention by signal and any separate archive requirement |
| Query service | Representative queries, concurrency and acceptable response times |
| Resilience | Failure scenarios, recovery time and acceptable data loss |
| Security | Access restrictions, isolation, sensitive-data handling and audit needs |
| Support | Coverage hours, response expectations, escalation and leave cover |
| Portability | Export requirements, configuration ownership and migration constraints |
Reducing retention or dropping unnecessary telemetry might be a sensible cost decision. Apply the same change to the managed quote before attributing the saving to self-hosting. See why Datadog bills grow for bill drivers and scope optimisation.
Separate searchable data from archived data. A cheaper archive is an equivalent replacement only when its retrieval delay and investigation workflow meet the requirement. For example, S3 Glacier Flexible Retrieval and Deep Archive require restoration before object access. This does not apply to every S3 storage class. S3 archive restoration
What infrastructure does the full data path need?
Inventory the components you plan to run. For each one, record quantity, capacity, operating hours, unit price, pricing source and region. Include staging and recovery environments where required.
Collection and delivery
Budget for collectors, gateways, load balancing, buffering and resources used on application hosts. Set the data-loss tolerance before choosing queues and persistence.
OpenTelemetry's resiliency guidance documents loss scenarios including full queues, retry timeouts and collector crashes when data exists only in memory. Persistent storage and external message queues introduce additional components to price and operate. Persistence has limits, including persistent-storage failures, so test the loss scenarios the design must survive.
If sampling or filtering reduces stored volume, measure the effect on the whole deployment. Do not apply the same percentage reduction to every infrastructure cost.
Ingestion, storage and queries
Size ingestion, storage and queries separately. Mimir's capacity guidance identifies ingestion, in-memory series and query traffic as resource drivers, while warning that actual requirements depend on data and configuration. For the backend paths behind those estimates, see Mimir architecture.
For regularly scraped metrics, estimate samples/second by dividing active series by the collection interval in seconds.
One million active series collected every 15 seconds produces approximately 66,667 samples/second before considering duplicate collection, deduplication or replication behaviour. Variable intervals and other metric types need a more detailed model.
For logs, test representative queries alongside daily ingestion. Loki's sizing guidance notes that query resource needs vary with usage patterns and configuration. Include broad historical searches and simultaneous investigations in the benchmark. Loki cluster sizing
Storage charges and networking
Estimate bytes at the layer you will pay for. Incoming uncompressed data, encoded data and retained storage are different quantities. Include indexes, local working space and additional copies required by the design.
Object storage also has charges beyond capacity. Check applicable request, retrieval, replication and transfer costs, including storage-class conditions and exemptions. Amazon S3 pricing
Map the network paths between collectors, backends and storage. Obtain rates for the relevant cross-zone, cross-region and internet traffic, checking service-specific exemptions. Record region, discounts and quote date beside each rate. Amazon EC2 pricing
Recovery and spare capacity
Price the resources needed during failures, deployments and recovery. Identify replicas, spare capacity and recovery environments component by component. A blanket redundancy multiplier obscures what the system needs. Use the self-hosted observability recovery test for deeper capacity analysis.
If existing infrastructure has spare capacity, show both its incremental bill impact and the capacity allocated to observability. State when forecast growth would require more resources.
Also check shared dependencies. If observability uses the same cluster, identity service or deployment process as the systems being observed, establish how engineers will access telemetry and receive notifications during a failure. Price any separation required under both options.
How should you value engineering time?
Estimate effort by activity and role. Count the total hours across everyone involved, including support and continuity work.
| Activity | Evidence for the estimate |
|---|---|
| Platform maintenance | Work records, deployment frequency and upgrade rehearsals |
| Capacity and performance | Pilot tuning, growth forecasts and query tests |
| Security and access | Access reviews, patching, certificates and secrets |
| Incidents | Platform incident records, handling time and follow-up work |
| Internal support | Onboarding, query help and dashboard requests |
| Data quality | Missing telemetry, duplicate collection and sampling changes |
| Continuity | Runbooks, training, handovers and leave cover |
Include identity integration, sensitive-data handling and checks of component access boundaries. OpenTelemetry assigns implementers responsibility for reviewing telemetry and protecting sensitive information, and its Collector guidance covers authentication, encryption and secure configuration. Sensitive-data handling, Collector security configuration
Budget for commercial components or paid support required by the design. Allow time for upgrade testing, compatibility checks and rollback preparation.
Test the monitoring service itself. Google's SRE guidance includes configuration management and testing of monitoring and alert behaviour. Budget for checks that telemetry arrives and notifications reach their intended destination. Google SRE monitoring
Use a consistent loaded hourly rate: annual employment cost divided by annual capacity hours.
Include applicable employer costs and benefits. Define capacity hours consistently across roles and options, including the treatment of leave.
Allocated labour cost is the sum of each activity's hours multiplied by the relevant loaded hourly rate.
Track actual effort during a pilot. A quiet week will not establish the time needed for upgrades, recovery or leave cover. Schedule those activities explicitly.
An existing engineer spending a day maintaining observability might cause no immediate increase in payroll. The day still consumes capacity which would otherwise be available for other work.
Cash spending attributable to the decision includes infrastructure and external services, plus additional payroll or contractor payments caused by the choice. Economic cost includes infrastructure and external services plus the full labour allocation for the work.
For the same work and period, additional labour payments should be represented within the full labour estimate. Do not add them a second time to economic cost. If a new hire must be funded in full, include the full cash commitment and reconcile it with the labour allocation, explaining how capacity used elsewhere or left unused is treated.
Record the specific product or reliability work deferred alongside the model. A loaded hourly rate allocates employment cost. Opportunity cost depends on the alternative use of that capacity. If the team has spare capacity with no displaced work, do not treat the allocation as a proven business loss. Assess any opportunity cost separately and reconcile overlaps before combining it with allocated labour. ACCA relevant cash flows
What does the transition cost under each option?
Budget for architecture and implementation, collector changes, dashboard and alert migration, access setup, documentation, training and acceptance testing.
Include temporary parallel operation and any contract overlap or termination payments which differ between the options. Show existing commitments in the cash schedule, but exclude costs which remain identical under both choices from the incremental decision comparison. Exclude irrecoverable past spending. ACCA relevant cash flows
Define acceptance checks before migration: data coverage, representative query results and performance, alert delivery, recovery and rollback. Decide whether historical data must migrate or whether the previous service remains available until retention expires.
For the managed option, obtain a quote for the agreed workload. Check billable units, included volumes, retention, overage terms, support and optional capabilities. Grafana Cloud's published plans illustrate how usage limits, retention and support vary by plan. Grafana Cloud pricing
Add retained internal work, collection infrastructure, networking, integration and eventual exit costs.
A managed service transfers the responsibilities specified in its agreement. Estimate saved engineering time against that boundary, keeping retained managed-service hours explicit.
Where is the labour break-even point?
For a steady workload, monthly economic cost equals monthly non-labour spending plus monthly allocated labour.
Period economic cost equals one-off economic cost plus the number of months multiplied by monthly economic cost. This model excludes tax and discounting.
Calculate attributable cash spending separately, substituting additional labour payments for the full labour allocation.
Show the timing of equipment purchases and annual commitments separately from monthly allocations. A cash schedule records the purchase payment and excludes depreciation. A resource-cost comparison needs a stated treatment of equipment use over the comparison period and any remaining value. Do not count both the full purchase and depreciation as separate costs of the same asset in one total. The worked example assumes no dedicated equipment purchase.
With a common loaded hourly rate, in-house recurring break-even hours equal managed hours plus the difference between managed and in-house non-labour spending divided by that rate.
For the worked example: 15 + (6,500 − 2,500) ÷ 100 = 55 in-house hours/month.
Below 55 in-house hours per month, self-hosting has the lower recurring economic cost under these assumptions. At 55 hours, recurring costs match.
The monthly economic costs in the example are US$10,500 in-house and US$8,000 managed. One-off economic transition costs are US$18,000 and US$6,000 respectively. Including that US$12,000 transition difference across twelve months lowers the first-year break-even to 45 in-house hours per month.
The first-year calculation is 55 − 12,000 ÷ (12 × 100) = 45 in-house hours/month. Transition costs enter this first-year threshold only. Both thresholds hold the common rate, managed hours and every other input fixed.
If roles have different rates, compare the detailed labour totals. If workload changes over the year, calculate each month separately and add the results. Keep minimum commitments, pricing tiers and capacity increases explicit.
Which assumptions could reverse the result?
Use the USD cost worksheet (XLSX) to record scope, costs, hours and evidence. Replace the illustrative inputs with infrastructure estimates, supplier quotes and measured effort. Confirm genuine zero-cost entries deliberately. A blank required numeric input suppresses the affected totals as incomplete. Review the evidence and scope fields separately, since numeric completeness does not establish a supported estimate.
Enter one-off costs separately and check for duplication with recurring spending. When splitting the example's consolidated figures across detailed categories, replace the totals rather than adding the same costs again.
Test changes to the inputs which matter to your business:
- Higher ingestion as services or telemetry coverage grow.
- More simultaneous investigations and broader historical queries.
- More maintenance, upgrade or support hours.
- Longer searchable retention or tighter recovery requirements.
- Additional cover when the main platform engineer is unavailable.
Update the underlying estimates for each scenario. If a small change reverses the result, collect better evidence for that assumption before committing.
The worksheet uses a flat monthly run rate. For growth scenarios, calculate a monthly schedule separately or use a documented period-average estimate. Record which workload the inputs represent.
Which operating model is your team equipped to run?
Self-hosting is a credible choice when the team has relevant operating experience, sufficient capacity and a measured workload which supports the economics. Specific control or deployment requirements might also justify the investment. Small, bounded requirements sometimes need only a straightforward deployment.
A managed service deserves stronger consideration when staffing is constrained or the team cannot meet the required service level within the apparent savings. A hybrid approach is useful when only part of the operating responsibility needs to move.
Approve the decision with a named service owner, a funded operating plan, tested requirements and a review date. Compare actual spending and engineering hours with the forecast after transition, and revisit the choice when workload, staffing or service requirements change.
- Does existing engineering time count if payroll does not increase?
- Include it in the labour allocation, while excluding unchanged payroll from attributable cash. Assess displaced work separately before assigning an opportunity cost.
- Is archived telemetry equivalent to searchable retention?
- Only when its retrieval delay and investigation workflow meet the requirement. Restoration rules differ by storage class.
- Can spare infrastructure capacity make self-hosting cheaper?
- It might reduce the incremental bill. Record the capacity consumed and when growth would require additional resources.
Primary sources checked 28 October 2026. These sources support general behaviour and cost definitions, not the hypothetical prices or measured service equivalence.
- S3 archive restoration 2026-10-28
- OpenTelemetry resiliency 2026-10-28
- Mimir capacity planning 2026-10-28
- Loki cluster sizing 2026-10-28
- Amazon S3 pricing 2026-10-28
- Amazon EC2 pricing 2026-10-28
- Sensitive-data handling 2026-10-28
- Collector security configuration 2026-10-28
- Google SRE monitoring 2026-10-28
- ACCA relevant cash flows 2026-10-28
- Grafana Cloud pricing 2026-10-28