Class SdkTracerProviderBuilder
- java.lang.Object
-
- io.opentelemetry.sdk.trace.SdkTracerProviderBuilder
-
public final class SdkTracerProviderBuilder extends java.lang.ObjectBuilder ofSdkTracerProvider.
-
-
Field Summary
Fields Modifier and Type Field Description private Clockclockprivate static SamplerDEFAULT_SAMPLERprivate IdGeneratoridsGeneratorprivate Resourceresourceprivate Samplersamplerprivate java.util.function.Supplier<SpanLimits>spanLimitsSupplierprivate java.util.List<SpanProcessor>spanProcessorsprivate ScopeConfiguratorBuilder<TracerConfig>tracerConfiguratorBuilder
-
Constructor Summary
Constructors Constructor Description SdkTracerProviderBuilder()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SdkTracerProviderBuilderaddResource(Resource resource)Merge aResourcewith the current.SdkTracerProviderBuilderaddSpanProcessor(SpanProcessor spanProcessor)Add a SpanProcessor to the span pipeline that will be built.(package private) SdkTracerProviderBuilderaddTracerConfiguratorCondition(java.util.function.Predicate<InstrumentationScopeInfo> scopeMatcher, TracerConfig tracerConfig)Adds a condition to the tracer configurator, which computesTracerConfigfor eachInstrumentationScopeInfo.SdkTracerProviderbuild()Create a newSdkTracerProviderinstance with the configuration.SdkTracerProviderBuildersetClock(Clock clock)Assign aClock.SdkTracerProviderBuildersetIdGenerator(IdGenerator idGenerator)Assign anIdGenerator.SdkTracerProviderBuildersetResource(Resource resource)Assign aResourceto be attached to all Spans created by Tracers.SdkTracerProviderBuildersetSampler(Sampler sampler)Assign aSamplerto use for sampling traces.SdkTracerProviderBuildersetSpanLimits(SpanLimits spanLimits)Assign an initialSpanLimitsthat should be used with this SDK.SdkTracerProviderBuildersetSpanLimits(java.util.function.Supplier<SpanLimits> spanLimitsSupplier)Assign aSupplierofSpanLimits.(package private) SdkTracerProviderBuildersetTracerConfigurator(ScopeConfigurator<TracerConfig> tracerConfigurator)Set the tracer configurator, which computesTracerConfigfor eachInstrumentationScopeInfo.
-
-
-
Field Detail
-
DEFAULT_SAMPLER
private static final Sampler DEFAULT_SAMPLER
-
spanProcessors
private final java.util.List<SpanProcessor> spanProcessors
-
clock
private Clock clock
-
idsGenerator
private IdGenerator idsGenerator
-
resource
private Resource resource
-
spanLimitsSupplier
private java.util.function.Supplier<SpanLimits> spanLimitsSupplier
-
sampler
private Sampler sampler
-
tracerConfiguratorBuilder
private ScopeConfiguratorBuilder<TracerConfig> tracerConfiguratorBuilder
-
-
Method Detail
-
setClock
public SdkTracerProviderBuilder setClock(Clock clock)
Assign aClock.Clockwill be used each time aSpanis started, ended or any event is recorded.The
clockmust be thread-safe and return immediately (no remote calls, as contention free as possible).- Parameters:
clock- The clock to use for all temporal needs.- Returns:
- this
-
setIdGenerator
public SdkTracerProviderBuilder setIdGenerator(IdGenerator idGenerator)
Assign anIdGenerator.IdGeneratorwill be used each time aSpanis started.The
idGeneratormust be thread-safe and return immediately (no remote calls, as contention free as possible).- Parameters:
idGenerator- A generator for trace and span ids.- Returns:
- this
-
setResource
public SdkTracerProviderBuilder setResource(Resource resource)
Assign aResourceto be attached to all Spans created by Tracers.- Parameters:
resource- A Resource implementation.- Returns:
- this
-
addResource
public SdkTracerProviderBuilder addResource(Resource resource)
Merge aResourcewith the current.- Parameters:
resource-Resourceto merge with current.- Since:
- 1.29.0
-
setSpanLimits
public SdkTracerProviderBuilder setSpanLimits(SpanLimits spanLimits)
Assign an initialSpanLimitsthat should be used with this SDK.This method is equivalent to calling
setSpanLimits(Supplier)like this#setSpanLimits(() -> spanLimits).- Parameters:
spanLimits- the limits that will be used for everySpan.- Returns:
- this
-
setSpanLimits
public SdkTracerProviderBuilder setSpanLimits(java.util.function.Supplier<SpanLimits> spanLimitsSupplier)
Assign aSupplierofSpanLimits.SpanLimitswill be retrieved each time aSpanis started.The
spanLimitsSuppliermust be thread-safe and return immediately (no remote calls, as contention free as possible).- Parameters:
spanLimitsSupplier- the supplier that will be used to retrieve theSpanLimitsfor everySpan.- Returns:
- this
-
setSampler
public SdkTracerProviderBuilder setSampler(Sampler sampler)
Assign aSamplerto use for sampling traces.Samplerwill be called each time aSpanis started.The
samplermust be thread-safe and return immediately (no remote calls, as contention free as possible).- Parameters:
sampler- theSamplerto use for sampling traces.- Returns:
- this
-
addSpanProcessor
public SdkTracerProviderBuilder addSpanProcessor(SpanProcessor spanProcessor)
Add a SpanProcessor to the span pipeline that will be built.SpanProcessorwill be called each time aSpanis started or ended.The
spanProcessormust be thread-safe and return immediately (no remote calls, as contention free as possible).- Parameters:
spanProcessor- the processor to be added to the processing pipeline.- Returns:
- this
-
setTracerConfigurator
SdkTracerProviderBuilder setTracerConfigurator(ScopeConfigurator<TracerConfig> tracerConfigurator)
Set the tracer configurator, which computesTracerConfigfor eachInstrumentationScopeInfo.This method is experimental so not public. You may reflectively call it using
SdkTracerProviderUtil.setTracerConfigurator(SdkTracerProviderBuilder, ScopeConfigurator).Overrides any matchers added via
addTracerConfiguratorCondition(Predicate, TracerConfig).- See Also:
TracerConfig.configuratorBuilder()
-
addTracerConfiguratorCondition
SdkTracerProviderBuilder addTracerConfiguratorCondition(java.util.function.Predicate<InstrumentationScopeInfo> scopeMatcher, TracerConfig tracerConfig)
Adds a condition to the tracer configurator, which computesTracerConfigfor eachInstrumentationScopeInfo.This method is experimental so not public. You may reflectively call it using
SdkTracerProviderUtil.addTracerConfiguratorCondition(SdkTracerProviderBuilder, Predicate, TracerConfig).Applies after any previously added conditions.
If
setTracerConfigurator(ScopeConfigurator)was previously called, this condition will only be applied if theFunction.apply(Object)returns null for the matchedInstrumentationScopeInfo(s).
-
build
public SdkTracerProvider build()
Create a newSdkTracerProviderinstance with the configuration.- Returns:
- The instance.
-
-