Sampling modes
Probabilistic sampling
A fixed percentage of all incoming traces is kept. Simple and low-overhead.- Global rate — percentage of all traces to keep (e.g.
10= keep 10%) - All decisions are made at ingestion time, before the full trace is assembled
Tail-based sampling
Sampling decisions are made after the full trace is assembled, so you can make smarter decisions based on outcome.- Global rate — percentage of normal (error-free, latency-normal) traces to keep
- Error traces — always kept (100%)
- Slow traces (above latency threshold) — always kept (100%)
- Service overrides — set a different rate for specific services
Enabling sampling
- Go to Sampling.
- Toggle Enable sampling on.
- Choose Probabilistic or Tail-based.
- Set the global rate.
- Click Save. Obsy syncs the config to your OTel collector within seconds via a Helm upgrade.
Filter rules
In addition to sampling, you can completely drop certain traffic from being collected at all. These rules run before sampling.Drop by endpoint
Drop all spans for specific HTTP paths. Useful for noisy health check endpoints.Obsy always drops
/health, /healthz, /readyz, /livez, /ping, and /metrics by default regardless of your custom drop rules. This reduces noise from k8s liveness probes.- Go to Sampling → Filter rules.
- Toggle Custom drop rules on.
- Enter endpoint paths (one per line, supports prefix matching).
Drop by HTTP method
Drop all spans for specific HTTP methods. Example: dropOPTIONS (CORS preflight) and HEAD requests.
Drop by user agent
Drop spans from specific user agents. Useful for excluding internal monitoring bots, load balancer health checks, or synthetic monitors you don’t want appearing in traces.Service-level overrides (tail-based only)
When using tail-based sampling, you can set a different sampling rate for individual services:- Go to Sampling → Service overrides.
- Click Add override.
- Select the service from your catalog and enter a rate (0–100%).
- Click Save.
payment-service to 100% (keep all) while everything else runs at 10%.
Cost impact
The Sampling page shows an estimated cost impact card based on your current ingestion volume and the configured rate. This is an estimate — actual savings depend on trace size distribution.How changes are applied
Sampling config changes trigger an automatichelm upgrade on all clusters. The upgrade is non-blocking (run with --no-wait) so changes appear in the UI immediately. New sampling settings take effect when the collector pods finish their rolling restart, typically within 30–60 seconds.