Class TraceIdRatioBasedSampler
java.lang.Object
io.opentelemetry.sdk.trace.samplers.TraceIdRatioBasedSampler
- All Implemented Interfaces:
Sampler
We assume the lower 64 bits of the traceId's are randomly distributed around the whole (long)
range. We convert an incoming probability into an upper bound on that value, such that we can
just compare the absolute value of the id and the bound to see if we are within the desired
probability range. Using the low bits of the traceId also ensures that systems that only use 64
bit ID's will also work with this sampler.
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final String
private final long
private static final SamplingResult
private static final SamplingResult
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static TraceIdRatioBasedSampler
create
(double ratio) private static String
decimalFormat
(double value) boolean
Returns the description of thisSampler
.(package private) long
private static long
getTraceIdRandomPart
(String traceId) int
hashCode()
shouldSample
(Context parentContext, String traceId, String name, SpanKind spanKind, Attributes attributes, List<LinkData> parentLinks) Called duringSpan
creation to make a sampling samplingResult.toString()
-
Field Details
-
POSITIVE_SAMPLING_RESULT
-
NEGATIVE_SAMPLING_RESULT
-
idUpperBound
private final long idUpperBound -
description
-
-
Constructor Details
-
TraceIdRatioBasedSampler
TraceIdRatioBasedSampler(double ratio, long idUpperBound)
-
-
Method Details
-
create
-
shouldSample
public SamplingResult shouldSample(Context parentContext, String traceId, String name, SpanKind spanKind, Attributes attributes, List<LinkData> parentLinks) Description copied from interface:Sampler
Called duringSpan
creation to make a sampling samplingResult.- Specified by:
shouldSample
in interfaceSampler
- Parameters:
parentContext
- the parent span'sSpanContext
. This can beSpanContext.INVALID
if this is a root span.traceId
- theTraceId
for the newSpan
. This will be identical to that in the parentContext, unless this is a root span.name
- the name of the newSpan
.spanKind
- theSpanKind
of theSpan
.attributes
-Attributes
associated with the span.parentLinks
- the parentLinks associated with the newSpan
.- Returns:
- sampling samplingResult whether span should be sampled or not.
-
getDescription
Description copied from interface:Sampler
Returns the description of thisSampler
. This may be displayed on debug pages or in the logs.Example: "TraceIdRatioBased{0.000100}"
- Specified by:
getDescription
in interfaceSampler
- Returns:
- the description of this
Sampler
.
-
equals
-
hashCode
public int hashCode() -
toString
-
getIdUpperBound
long getIdUpperBound() -
getTraceIdRandomPart
-
decimalFormat
-