Configure tail-based sampling
editConfigure tail-based sampling
editEnable tail-based sampling in the APM integration settings. When enabled, trace events are mapped to sampling policies. Each sampling policy must specify a sample rate, and can optionally specify other conditions. All of the policy conditions must be true for a trace event to match it.
Trace events are matched to policies in the order specified.
Each policy list must conclude with a default policy — one that only specifies a sample rate.
This default policy is used to catch remaining trace events that don’t match a stricter policy.
Requiring this default policy ensures that traces are only dropped intentionally.
If you enable tail-based sampling and send a transaction that does not match any of the policies,
APM Server will reject the transaction with the error no matching policy
.
Example configuration
editThis example defines three tail-based sampling polices:
- sample_rate: 1 service.environment: production trace.name: "GET /very_important_route" - sample_rate: .01 service.environment: production trace.name: "GET /not_important_route" - sample_rate: .1
Samples 100% of traces in |
|
Samples 1% of traces in |
|
Default policy to sample all remaining traces at 10%, e.g. traces in a different environment, like |
Configuration reference
editTop-level tail-based sampling settings:
(bool) Enable and disable tail-based sampling. Default: |
|
(duration) Synchronization interval for multiple APM Servers. Should be in the order of tens of seconds or low minutes. Default: |
|
( Required when tail-based sampling is enabled. |
Policy settings:
|
(int) The sample rate to apply to trace events matching this policy. Required in each policy. |
|
(string) The trace name for events to match a policy. |
|
(string) The trace outcome for events to match a policy.
Trace outcome can be |
|
(string) The service name for events to match a policy. |
|
(string) The service environment for events to match a policy. |