19

The Cost Model of Each Signal

Source: Observability Platform source notes, section 19, “The Cost Model of Each Signal”

The enterprise problem and today’s slice

Enterprise problem: Customers lose diagnostic coverage or face unpredictable bills when teams apply one retention and ingestion policy to metrics, logs, traces, profiles, and queries despite their different cost drivers.

Whole-course context: The incoming topology decision identifies collectors, stores, tenants, and failure domains; this day attaches measurable unit economics and quality constraints to every signal path.

Today’s slice: We model active series, bytes, spans, profile samples, retention, and query work, then govern changes with budgets rather than indiscriminate dropping.

End-of-day evidence: A per-tenant cost ledger and replayable budget experiment show unit cost, retained diagnostic value, limit behavior, and an unaffected control.

Still unsolved: Schema migration and sensitive-data policy remain deferred because cheap telemetry can still be incompatible or unsafe.

Customer use cases

Cost reduction without a customer job can erase the only evidence needed during an incident. These cases require predictable spend and preserved diagnostic value.

Use case IDActorCustomer jobSuccess outcomeDenial or recovery evidence
D19-UC-01Engineering managerAttribute observability cost to a team and signalThe monthly forecast explains volume, retention, query, and shared overhead within an agreed error bandA budget breach identifies the dominant dimension and preserves a critical-path positive control
D19-UC-02On-call engineerReduce noisy telemetry without losing rare failuresSampling and retention changes lower cost while a seeded rare failure remains discoverableReplay rejects a policy that hides the rare failure and restores the previous revision

Actor-centred user stories

“Optimize cost” is not testable unless actors can compare money and diagnostic outcomes under the same workload.

Story IDUse case IDsUser storyObservable acceptance conditions
D19-US-01D19-UC-01As an engineering manager, I want cost attributed by tenant and signal, so that teams can make bounded trade-offsForecast and invoice-window measurements name volume, retention, queries, overhead, currency, and error band
D19-US-02D19-UC-02As an on-call engineer, I want budget policies tested against seeded incidents, so that savings do not silently remove causal evidenceA versioned replay finds all required incident clues; a deliberately over-aggressive policy fails and rolls back

End-to-end product flows

A cost dashboard alone cannot prove causality, so each flow starts with a policy action and ends with measured spend plus signal quality.

Flow IDUse case IDsPathTriggerNumbered stepsTerminal evidence
D19-FLOW-01D19-UC-01HappyManager opens a tenant cost review1. Ledger reads signal volumes and retention.<br>2. It applies versioned unit rates and shared allocation.<br>3. Forecast is compared with the prior invoice window.<br>4. Dominant drivers and owners are published.Tenant, signal, measurement window, units, rate revision, forecast, observed cost, error, timestamp, and ledger run ID
D19-FLOW-02D19-UC-02RecoveryOperator proposes lower trace sampling and shorter log retention1. Policy simulator replays a fixed incident corpus.<br>2. It measures stored bytes and query work.<br>3. Required clues are checked.<br>4. A missing clue rejects the policy.<br>5. Previous policy is restored and re-probed.Policy revisions, corpus hash, expected clues, observed clues, cost delta, rollback result, environment, timestamp, and experiment ID

System design derived from the flows

If accounting and quality checks live in separate systems, savings can be approved without seeing what evidence disappeared. The design joins volume, rates, policies, and replay verdicts through immutable references.

Use case IDEntry pointResponsible servicesAuthoritative storeFailure evidence
D19-UC-01Tenant cost-review pageUsage metering, rate catalogue, allocation engine, report publisherCost ledger owned by FinOps with immutable raw usage referencesMissing tenant attribution, stale rate, forecast error outside band, or unallocated shared cost
D19-UC-02Budget-policy review actionPolicy registry, telemetry collectors, replay runner, query probesPolicy registry owned by observability platform; corpus catalogue owned by reliability engineeringLost required clue, unexpected cardinality, query-budget breach, or failed rollback probe

Data model and ownership

Cost claims become irreproducible when unit rates, usage windows, and policy revisions are overwritten. Durable control-plane records preserve the calculation without copying application data.

Generated-application database: Not created in this slice — cost, policy, and replay evidence belong to the observability control plane.

Record or entityStore and ownerPrimary keyForeign key or opaque referenceTenant keyMaterial constraintLifecycle and deletionUse case IDs
SignalUsageWindowUsage ledger, FinOps ownerusage_window_idOpaque backend usage snapshot referencetenant_idSignal, unit, interval, source revision, and measured quantity are immutableAppend per window, retain through billing audit, expire raw detail after aggregate reconciliationD19-UC-01, D19-UC-02
CostRateRevisionRate catalogue, FinOps ownerrate_revision_idNone — root rate revisionNone — shared rate schedule with explicit allocation scopeCurrency, unit, effective interval, and source are required; intervals cannot overlapPublish immutably, supersede prospectively, retain for financial auditD19-UC-01, D19-UC-02
BudgetExperimentPolicy registry, platform ownerexperiment_idOpaque usage-window, policy-revision, and corpus referencestenant_idSame corpus and workload seed are required for before/after comparisonRetain verdict and aggregates; expire replay payload by incident-data policy; delete after governance retentionD19-UC-01, D19-UC-02

Signal equations and trade-offs

One universal “gigabytes” number conceals the multiplier that an engineer can actually control. Use a separate first-order equation for each signal, then validate it against real backend measurements.

SignalFirst-order driverDangerous multiplierQuality guardrail
MetricsMetrics per target × label combinations × targets × scrape frequency × retentionUnbounded label values create new active seriesRequired service-level indicators and aggregation queries still return valid results
LogsBytes per second × retention × replication and storage overheadVerbose payloads, too many indexed labels, tiny streams, repeated parsingSeeded error event remains findable by bounded labels and time
TracesRequests per second × spans per request × retained sampling ratio × bytes per span × retentionMesh, database, messaging, and application spans multiply per requestRare error and long-tail traces remain represented by explicit sampling policy
ProfilesProcesses × sample frequency × stack depth × profile types × retentionExcess dimensions fragment profiles and queriesKnown hot function remains visible within an agreed error tolerance
QueriesTime range × selected data × fan-out × query complexityLong unbounded scans across tenants or clustersQuery budgets reject or split work without hiding an allowed bounded query

Cheap object storage does not make a 30-day, all-cluster, unbounded-text investigation cheap. Ingestion, retention, indexing, compaction, caching, and query fan-out form one economic system. Prometheus documentation also warns that each unique label set is a new time series, making label cardinality a multiplicative concern rather than a cosmetic naming choice.

Cost falsification protocol

A model that only fits last month can still fail after traffic or schema changes, so test both forecast accuracy and diagnostic survival.

  1. Freeze a representative workload and incident corpus with immutable hashes.
  2. Measure raw accepted, rejected, and dropped telemetry by tenant and signal.
  3. Change exactly one variable: label dimension, sampling ratio, retention, profile frequency, or query range.
  4. Compare stored volume, compute/query work, and required investigation clues.
  5. Run a negative case that deliberately exceeds the limit and a positive control under the limit.
  6. Falsify the model if forecast error exceeds the agreed band or if a required clue disappears.
  7. Recalibrate rates or reject the policy; never relabel lost evidence as savings.

Key takeaways

The right optimization keeps the evidence needed for customer outcomes while removing dimensions that add cost without decision value.

  • Active series dominate metric economics; volume and retention dominate logs, traces, and profiles.
  • Span count, sampling, stack dimensions, and query fan-out need explicit ownership.
  • Storage price is only one term; ingestion and query work matter too.
  • Every policy change needs a fixed-corpus diagnostic-quality test and rollback.

Checklist

A budget is safe only when finance and on-call evidence agree.

  • [ ] Usage is measured by tenant, signal, unit, and window.
  • [ ] Rate revisions and shared-cost allocation are immutable.
  • [ ] Before/after experiments hold workload and incident corpus constant.
  • [ ] A rare-failure positive control remains discoverable.
  • [ ] Limit denials and rollback results are recorded.

Sources

Signal economics and label behavior evolve, so current guidance was checked against official primary documentation.