public final class BoundarySampler extends Sampler
This uses modulo 10000 arithmetic, which allows a minimum sample rate of 0.01%. Trace id collision was noticed in practice in the Twitter front-end cluster. A random salt is here to defend against nodes in the same cluster sampling exactly the same subset of trace ids. The goal was full 64-bit coverage of trace IDs on multi-host deployments.
Based on https://github.com/twitter/finagle/blob/develop/finagle-zipkin/src/main/scala/com/twitter/finagle/zipkin/thrift/Sampler.scala#L68
ALWAYS_SAMPLE, NEVER_SAMPLE
Modifier and Type | Method and Description |
---|---|
static Sampler |
create(float rate) |
boolean |
isSampled(long traceId)
Returns true when
abs(traceId) <= boundary |
String |
toString() |
public static Sampler create(float rate)
rate
- 0 means never sample, 1 means always sample. Otherwise minimum sample rate is
0.0001, or 0.01% of tracespublic boolean isSampled(long traceId)
abs(traceId) <= boundary
Copyright © 2017 OpenZipkin. All rights reserved.