Skip to content

The Economics of Observability: Cost, Signal, and Organizational Feedback Loops

This deep dive extends the conceptual analysis in Observability vs Monitoring. Where that document examines what observability means architecturally, this one examines what it costs and whether the investment is calibrated correctly.

Themes: Operations Β· Economics Β· Governance


Opening Thesis

Observability is not primarily a tooling problem. Vendor marketing has positioned observability as a capability gap that the right platform closes: buy the product, instrument the services, gain insight. This framing is commercially convenient and analytically incomplete.

The actual constraints on observability effectiveness are economic. Data volume grows faster than useful signal. Storage costs scale with retention. Query costs scale with cardinality. Alert fatigue scales with the number of alerts, not their relevance. Human interpretation cost is not captured by any line in an infrastructure budget but is the dominant cost vector in mature observability programs.

Organizations that have not examined the economics of their observability investment are frequently paying for data they cannot query, alerts they cannot action, and dashboards that are read once and forgotten. The tooling is working; the investment is not.


Historical Evolution of Monitoring Cost

Nagios Era: Infrastructure as the Boundary

Early monitoring systems were inexpensive because their scope was narrow. Nagios, Zabbix, and their contemporaries monitored infrastructure: host reachability, disk usage, CPU utilization, service ports. The metric set per host was small (tens of metrics), the check interval was long (one to five minutes), and storage was local. The cost of the monitoring system was dominated by the hardware it ran on, not the volume of data it collected.

This model was affordable precisely because it did not try to answer interesting questions. It answered binary questions β€” is the host up, is disk above 90% β€” and the alert volume was proportional to the number of assets monitored. An operator managing 200 servers in this model had a manageable alert surface.

APM Explosion and the First Cost Inflection

Application Performance Monitoring (APM) introduced instrumentation at the application layer: response times, error rates, database query performance, external API call latency. The data volume per service increased by one to two orders of magnitude compared to infrastructure monitoring. The metric series count grew from tens per host to hundreds or thousands per service, depending on the number of endpoints, database queries, and external integrations instrumented.

The cost model for commercial APM tools (New Relic, Dynatrace, AppDynamics) was typically per host or per application, which obscured the underlying data volume growth. Organizations paid a flat fee per instrumented server and received the APM capabilities without direct exposure to the data cost. This created an environment where the economic pressure to limit instrumentation was indirect and organizational rather than direct and billing-driven.

Distributed Tracing: The Second Inflection

Distributed tracing introduced a fundamentally different data model: each request generates a tree of spans, one per service boundary, with timing, metadata, and error information. At 10,000 requests per second across a 20-service system, 100% trace sampling produces millions of spans per second β€” data volumes that strain any storage system and make the flat APM pricing model uneconomic for vendors to sustain.

The distributed tracing cost problem forced the industry to confront sampling as a design constraint rather than an implementation detail. Sampling reduces cost by discarding a fraction of traces. It simultaneously reduces signal by making rare events β€” the slow request, the edge-case error, the unusual user path β€” statistically underrepresented or absent from the trace corpus. This trade-off has no clean resolution; it is a genuine economic-signal tension.

SaaS Observability: Transparent Cost, Opaque Value

Modern SaaS observability platforms (Datadog, Honeycomb, Grafana Cloud, New Relic) expose the cost of observability directly: per host-month, per GB ingested, per million log events, per trace sampled. This transparency is valuable β€” organizations can see what they are paying. The harder problem is whether the insight received justifies the cost, which requires measuring the value of observability, a significantly harder problem than measuring its cost.


The Cost Stack

Observability cost is not a single line item. It is a stack of distinct cost vectors with different technical drivers and different organizational impacts.

Cost Vector Technical Driver Organizational Impact
Metric ingestion Cardinality Γ— scrape interval Γ— series count Infrastructure billing (Prometheus storage, Datadog metrics)
Log ingestion Event volume Γ— verbosity level Γ— retention Per-GB billing; developer tendency to over-log
Trace ingestion Request volume Γ— service count Γ— sampling rate Per-span or per-GB billing; sampling decisions defer cost
Storage retention Retention period Γ— data volume Cold storage vs hot query cost; compliance retention requirements
Query cost Query complexity Γ— data volume Γ— frequency Athena-style per-scan billing; dashboard refresh cost
Alert evaluation Number of alert rules Γ— evaluation frequency CPU cost on Prometheus; vendor API call limits
Human interpretation Alert volume Γ— false positive rate Γ— response time On-call fatigue; opportunity cost of engineering attention
Tool maintenance Dashboard count Γ— team count Γ— turnover Undocumented dashboards; outdated alert thresholds

The final two rows β€” human interpretation and tool maintenance β€” are not captured in any vendor bill but represent the largest fraction of total observability cost for mature systems. A 50-alert on-call rotation where 40 alerts are false positives or require no action trains operators to dismiss alerts. A library of 300 Grafana dashboards where 250 are never opened is organizational debt measured in confusion cost, not storage cost.


Cardinality and Chaos

Cardinality is the number of distinct values a label or dimension can take. A metric labeled with service has cardinality equal to the number of services (typically tens to hundreds). A metric labeled with user_id has cardinality equal to the number of users (potentially millions). The number of time series in a metric system is the product of the cardinality of all its labels.

  Metric dimensionality growth:
  ─────────────────────────────────────────────────────────────────
  Base metric: http_requests_total

  + label: method   (GET, POST, PUT, DELETE)      Γ— 4
  + label: status   (200, 400, 404, 500, 503...)  Γ— 10
  + label: service  (50 services)                 Γ— 50
  + label: region   (us-east, us-west, eu)         Γ— 3
  ─────────────────────────────────────────────────────────────────
  Total series: 4 Γ— 10 Γ— 50 Γ— 3 = 6,000

  + label: endpoint (200 distinct endpoints)      Γ— 200
  ─────────────────────────────────────────────────────────────────
  Total series: 1,200,000

  + label: user_id  (1M users)                    Γ— 1,000,000
  ─────────────────────────────────────────────────────────────────
  Total series: 1,200,000,000,000  β†’ metric storage collapse

The practical consequence is that naive labeling of metrics with high-cardinality identifiers β€” user IDs, request IDs, session tokens, order numbers β€” creates a metric storage problem that grows with the user base and can cause Prometheus to run out of memory or Datadog to issue an unexpected billing spike.

The per-service observability inflation problem compounds this. Each new service deployment adds its metrics. Each new version of a service may add new metric labels. Each new team responsible for a service applies its own labeling conventions. Without centralized cardinality governance β€” a set of approved label names, a review process for new high-cardinality labels, automated cardinality monitoring β€” metric sprawl is the default outcome of a growing engineering organization.


Sampling and the Illusion of Insight

Sampling is the most consequential design decision in a distributed tracing system, and it is frequently made by default rather than by deliberate analysis.

Head-based sampling decides at the start of a request whether to trace it. A 1% head-based sample retains 1 in 100 requests and discards the rest. The traces that are retained are a representative statistical sample of the full request population, which is useful for latency percentile analysis and throughput measurement. It is not useful for debugging rare failures: a failure that occurs in 0.1% of requests may never appear in a 1% sample.

Tail-based sampling defers the sampling decision until after the request completes, retaining traces for requests that were slow, errored, or otherwise interesting. This is more useful for debugging but requires buffering all spans until the request is complete β€” adding memory pressure and introducing the question of which criteria define "interesting" before the system has seen the failure mode.

Structured events as an alternative β€” the approach advocated by Honeycomb and similar vendors β€” treats every request as a single wide structured event rather than a trace with spans. Wide events (100+ fields per event) contain all the context that spans would provide, without the fan-out cost of multi-span traces. Sampling can be applied to wide events with the same trade-offs, but the storage and query cost per retained event is lower because there is no span join operation at query time.

What is lost when cost is optimized through sampling is not the average behavior of the system β€” averages are well-preserved by statistical sampling β€” but the behavior of specific, unusual requests. The p99 latency figure in a sampled trace corpus reflects the 99th percentile of the sampled population, not the actual 99th percentile of all requests. For services where the p99 SLO is the primary reliability commitment, sampling-induced bias in percentile estimation is not a theoretical concern.


Observability as Organizational Mirror

Observability infrastructure reflects organizational incentives with uncomfortable accuracy. The metrics that are measured are the metrics that matter to someone. The dashboards that are maintained are the dashboards that someone checks. The alerts that are actionable are the alerts that someone was held accountable for fixing.

When organizations have many metrics, few dashboards, and high alert volumes, the observability investment has been made to satisfy a compliance or architectural requirement rather than to produce operational insight. The tooling is present; the organizational process that would make it useful is absent.

Teams gaming metrics is a predictable consequence of measuring the wrong things. If a team is measured on alert resolution time, the optimal strategy is to close alerts quickly, not to fix the underlying conditions that cause them. If a team is measured on the number of dashboards it maintains, the optimal strategy is to create dashboards, not to maintain relevant ones. Goodhart's Law β€” when a measure becomes a target, it ceases to be a good measure β€” applies to observability metrics as precisely as to any other KPI.

Incentive misalignment between the team responsible for observability infrastructure and the teams consuming it is a structural problem. The platform team optimizes for cost, coverage, and standardization. The service teams optimize for their specific operational needs, which may require non-standard high-cardinality labels or custom retention periods. Without a governance process that negotiates these interests explicitly, the outcome is either over-constrained (the platform team's rules block useful instrumentation) or under-constrained (cardinality and cost grow without governance).

Blameless culture is not primarily a psychological disposition β€” it is an operational requirement for useful observability data. If operators face blame consequences for failures detected by observability tooling, the rational response is to limit the scope of what is observable. Postmortems that assign blame produce sanitized reports; postmortems that treat failures as systemic produce honest root cause analysis and concrete improvement actions. The quality of observability data in an organization is partly determined by whether people believe that surfacing problems is safe.


Data Pipeline Observability

The economics of observability for data pipelines are distinct from those for request-serving systems. The primary observability dimensions for data pipelines β€” freshness, completeness, and correctness β€” have different cost structures than the latency, error rate, and saturation metrics that dominate service observability.

Freshness monitoring is cheap: a timestamp comparison. The operational value is high; stale data that is not detected is worse than stale data that surfaces an alert. Most data orchestration tools (Airflow, Prefect) provide task-level timestamps that enable freshness monitoring without additional instrumentation.

Correctness monitoring is expensive: it requires executing quality assertions against the data itself, which is a compute operation proportional to the size of the dataset. A correctness check that runs a full table scan on a 100 GB table to validate row counts and referential integrity is not cheap at scale, and running it after every pipeline execution multiplies the compute cost.

Silent corruption is the most operationally dangerous failure mode and the least detectable by cheap monitoring. A pipeline that loads data with incorrect values β€” wrong timestamps, off-by-one errors in aggregations, missing decimal points β€” will pass freshness checks, pass row count checks, and fail only when a user notices a number that seems wrong. The cost of detecting silent corruption scales with the sophistication of the quality assertions; the cost of not detecting it scales with the business impact of decisions made on incorrect data.

The economics of data pipeline observability therefore create a rational motivation to underinvest in correctness monitoring: freshness is cheap, completeness is moderate-cost, and correctness is expensive. The result is that most data teams monitor what is cheap to monitor, which is not the same as what matters most to monitor.


Decision Framework

Small team, non-regulated, simple architecture: invest in golden signals (latency, error rate, saturation) per service, basic freshness monitoring for data pipelines, and a small number of high-value dashboards. Avoid premature investment in distributed tracing or log analytics; the operational complexity exceeds the diagnostic value until the failure modes are too complex for direct inspection.

Growing team, scaling services, undefined failure modes: invest in structured logging with consistent fields, basic distributed tracing with head-based 5–10% sampling, and data quality assertions on critical tables. The primary value at this stage is establishing diagnostic patterns before the system becomes too complex to understand without them.

Large engineering organization, SaaS product with SLOs: full distributed tracing with tail-based sampling, cardinality governance for metrics, data observability tooling for critical pipelines, and dedicated SRE capacity for observability operations. The investment is justified when undetected failures have direct business impact measurable in revenue or compliance risk.

Regulated environment: the observability investment is partly compliance-driven rather than operationally-driven. Log retention periods, audit trails, and data lineage documentation may be required regardless of their operational utility. Separating compliance observability (required by regulation) from operational observability (required for reliability) makes the economic justification of each clearer.

Self-hosted vs SaaS: self-hosted observability (Prometheus + Grafana + Loki + Tempo) provides cost control at the expense of operational investment. At small scale (under 20 services, under 50M metric series), the operational cost of running the stack may exceed the cost of a managed service. At large scale, the per-GB economics of self-hosted storage typically justify the operational investment. The break-even point depends on the team's operational capacity and the vendor's pricing at the relevant data volume.

When to cut scope: an observability system that costs more in human attention than it saves in incident response time is net-negative. Alert volumes that produce on-call fatigue, dashboards that are never read, and trace storage that is never queried are organizational liabilities disguised as technical assets. Reducing the scope of observability to what is actually used is the correct response to observability bloat, not an indication of insufficient investment.

See also