Interface Sampler
-
- All Known Implementing Classes:
ParentBasedSampler
@ThreadSafe public interface SamplerSampler is used to make decisions onSpansampling.
-
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Modifier and Type Method Description static SampleralwaysOff()static SampleralwaysOn()StringgetDescription()Returns the description of thisSampler.static SamplerparentBased(Sampler root)Returns aSamplerthat always makes the same decision as the parentSpanto whether or not to sample.static ParentBasedSampler.BuilderparentBasedBuilder(Sampler root)Returns aParentBasedSampler.Builderthat follows the parent's sampling decision if one exists, otherwise following the root sampler and other optional sampler's decision.SamplingResultshouldSample(io.opentelemetry.context.Context parentContext, String traceId, String name, io.opentelemetry.api.trace.Span.Kind spanKind, io.opentelemetry.api.common.Attributes attributes, List<SpanData.Link> parentLinks)Called duringSpancreation to make a sampling samplingResult.static SamplertraceIdRatioBased(double ratio)Returns a new TraceIdRatioBasedSampler.
-
-
-
Method Detail
-
alwaysOn
static Sampler alwaysOn()
- Returns:
- a
Samplerthat always makes a "yes"SamplingResultforSpansampling.
-
alwaysOff
static Sampler alwaysOff()
- Returns:
- a
Samplerthat always makes a "no"SamplingResultforSpansampling.
-
parentBased
static Sampler parentBased(Sampler root)
Returns aSamplerthat always makes the same decision as the parentSpanto whether or not to sample. If there is no parent, the Sampler uses the provided Sampler delegate to determine the sampling decision.- Parameters:
root- theSamplerwhich is used to make the sampling decisions if the parent does not exist.- Returns:
- a
Samplerthat follows the parent's sampling decision if one exists, otherwise following the root sampler's decision.
-
parentBasedBuilder
static ParentBasedSampler.Builder parentBasedBuilder(Sampler root)
Returns aParentBasedSampler.Builderthat follows the parent's sampling decision if one exists, otherwise following the root sampler and other optional sampler's decision.- Parameters:
root- the requiredSamplerwhich is used to make the sampling decisions if the parent does not exist.- Returns:
- a
ParentBased.Builder
-
traceIdRatioBased
static Sampler traceIdRatioBased(double ratio)
Returns a new TraceIdRatioBasedSampler. The ratio of sampling a trace is equal to that of the specified ratio.- Parameters:
ratio- The desired ratio of sampling. Must be within [0.0, 1.0].- Returns:
- a new TraceIdRatioBased
Sampler. - Throws:
IllegalArgumentException- ifratiois out of range
-
shouldSample
SamplingResult shouldSample(io.opentelemetry.context.Context parentContext, String traceId, String name, io.opentelemetry.api.trace.Span.Kind spanKind, io.opentelemetry.api.common.Attributes attributes, List<SpanData.Link> parentLinks)
Called duringSpancreation to make a sampling samplingResult.- Parameters:
parentContext- the parent span'sSpanContext. This can beSpanContext.INVALIDif this is a root span.traceId- theTraceIdfor the newSpan. This will be identical to that in the parentContext, unless this is a root span.name- the name of the newSpan.spanKind- theSpan.Kindof theSpan.attributes-Attributesassociated with the span.parentLinks- the parentLinks associated with the newSpan.- Returns:
- sampling samplingResult whether span should be sampled or not.
-
getDescription
String getDescription()
Returns the description of thisSampler. This may be displayed on debug pages or in the logs.Example: "TraceIdRatioBased{0.000100}"
- Returns:
- the description of this
Sampler.
-
-