OpenTelemetry / pre-deploy audit

One budget. Every collector.

Autoscaling should not multiply your tail-sampling bill. Read the config, model the fleet, and fail a deploy before the exported span volume escapes its limit.

Seven collector nodes send dithered signals through one mechanical gate into a bound ledger.
Plate 01 / local goals accumulate at fleet scale

01 / proof press

Test the scale change

This browser model uses the CLI’s throughput formula. Values stay on this device and are not saved.

Before the adaptive tail sampler.

Fleet ledger

Over budget

Safe per-instance goal at peak

75 spans/s

0%budget + 10%
ReplicasFleet capEst. exportState

Deploy assertion

Assumes steady-state input and an even load balance. The CLI reports additional config-specific assumptions.

02 / method

Budget math you can audit

No trace payloads and no mystery model. The report distinguishes per-replica throughput goals from fleet-safe percentage policies.

A / READ

Follow the traces pipeline

The CLI reads only referenced processors and rejects unsupported sampling policies rather than making a quiet guess.

B / MODEL

Multiply where OTel does

Local adaptive-throughput goals scale with replicas. Probabilistic and adaptive-percentage rates stay fractions of the load-balanced input.

C / ASSERT

Make overage fail loudly

Every scale scenario is checked against the budget plus tolerance. Exit code 3 blocks the deploy; JSON feeds the rest of CI.

03 / install

Put the ledger in CI

A single Rust binary, zero runtime services, stable exit codes. Start with the example config in the repository.

Shell / build and audit
cargo install --git https://github.com/B-Divyesh/sf-sampling-budget-coordinator

sbc plan --config collector.yaml \
  --budget 600 --replicas 3 \
  --scenario 3,5,8 --input 12000

sbc assert --config collector.yaml \
  --budget 600 --replicas 8 \
  --input 12000 --json