Package io.opentelemetry.sdk.trace
Class SdkTracerProvider
- java.lang.Object
-
- io.opentelemetry.sdk.trace.SdkTracerProvider
-
- All Implemented Interfaces:
TracerProvider,java.io.Closeable,java.lang.AutoCloseable
public final class SdkTracerProvider extends java.lang.Object implements TracerProvider, java.io.Closeable
SDK implementation forTracerProvider.
-
-
Field Summary
Fields Modifier and Type Field Description (package private) static java.lang.StringDEFAULT_TRACER_NAMEprivate static java.util.logging.Loggerloggerprivate TracerSharedStatesharedStateprivate ScopeConfigurator<TracerConfig>tracerConfiguratorprivate ComponentRegistry<SdkTracer>tracerSdkComponentRegistry
-
Constructor Summary
Constructors Constructor Description SdkTracerProvider(Clock clock, IdGenerator idsGenerator, Resource resource, java.util.function.Supplier<SpanLimits> spanLimitsSupplier, Sampler sampler, java.util.List<SpanProcessor> spanProcessors, ScopeConfigurator<TracerConfig> tracerConfigurator)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static SdkTracerProviderBuilderbuilder()Returns a newSdkTracerProviderBuilderforSdkTracerProvider.voidclose()Attempts to stop all the activity forTracers created by this provider.CompletableResultCodeforceFlush()Requests the active span processor to process all span events that have not yet been processed and returns aCompletableResultCodewhich is completed when the flush is finished.Tracerget(java.lang.String instrumentationScopeName)Gets or creates a named tracer instance.Tracerget(java.lang.String instrumentationScopeName, java.lang.String instrumentationScopeVersion)Gets or creates a named and versioned tracer instance.SamplergetSampler()Returns the configuredSampler.SpanLimitsgetSpanLimits()Returns theSpanLimitsthat are currently applied to created spans.private TracerConfiggetTracerConfig(InstrumentationScopeInfo instrumentationScopeInfo)CompletableResultCodeshutdown()Attempts to stop all the activity forTracers created by this provider.java.lang.StringtoString()TracerBuildertracerBuilder(java.lang.String instrumentationScopeName)Creates a TracerBuilder for a namedTracerinstance.
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
DEFAULT_TRACER_NAME
static final java.lang.String DEFAULT_TRACER_NAME
- See Also:
- Constant Field Values
-
sharedState
private final TracerSharedState sharedState
-
tracerSdkComponentRegistry
private final ComponentRegistry<SdkTracer> tracerSdkComponentRegistry
-
tracerConfigurator
private final ScopeConfigurator<TracerConfig> tracerConfigurator
-
-
Constructor Detail
-
SdkTracerProvider
SdkTracerProvider(Clock clock, IdGenerator idsGenerator, Resource resource, java.util.function.Supplier<SpanLimits> spanLimitsSupplier, Sampler sampler, java.util.List<SpanProcessor> spanProcessors, ScopeConfigurator<TracerConfig> tracerConfigurator)
-
-
Method Detail
-
builder
public static SdkTracerProviderBuilder builder()
Returns a newSdkTracerProviderBuilderforSdkTracerProvider.- Returns:
- a new
SdkTracerProviderBuilderforSdkTracerProvider.
-
getTracerConfig
private TracerConfig getTracerConfig(InstrumentationScopeInfo instrumentationScopeInfo)
-
get
public Tracer get(java.lang.String instrumentationScopeName)
Description copied from interface:TracerProviderGets or creates a named tracer instance.- Specified by:
getin interfaceTracerProvider- Parameters:
instrumentationScopeName- A name uniquely identifying the instrumentation scope, such as the instrumentation library, package, or fully qualified class name. Must not be null.- Returns:
- a tracer instance.
-
get
public Tracer get(java.lang.String instrumentationScopeName, java.lang.String instrumentationScopeVersion)
Description copied from interface:TracerProviderGets or creates a named and versioned tracer instance.- Specified by:
getin interfaceTracerProvider- Parameters:
instrumentationScopeName- A name uniquely identifying the instrumentation scope, such as the instrumentation library, package, or fully qualified class name. Must not be null.instrumentationScopeVersion- The version of the instrumentation scope (e.g., "1.0.0").- Returns:
- a tracer instance.
-
tracerBuilder
public TracerBuilder tracerBuilder(@Nullable java.lang.String instrumentationScopeName)
Description copied from interface:TracerProviderCreates a TracerBuilder for a namedTracerinstance.- Specified by:
tracerBuilderin interfaceTracerProvider- Parameters:
instrumentationScopeName- A name uniquely identifying the instrumentation scope, such as the instrumentation library, package, or fully qualified class name. Must not be null.- Returns:
- a TracerBuilder instance.
-
getSpanLimits
public SpanLimits getSpanLimits()
Returns theSpanLimitsthat are currently applied to created spans.
-
shutdown
public CompletableResultCode shutdown()
Attempts to stop all the activity forTracers created by this provider. CallsSpanProcessor.shutdown()for all registeredSpanProcessors.The returned
CompletableResultCodewill be completed when all the Spans are processed.After this is called, newly created
Spans will be no-ops.After this is called, further attempts at re-using this instance will result in undefined behavior. It should be considered a terminal operation for the SDK.
- Returns:
- a
CompletableResultCodewhich is completed when all the span processors have been shut down.
-
forceFlush
public CompletableResultCode forceFlush()
Requests the active span processor to process all span events that have not yet been processed and returns aCompletableResultCodewhich is completed when the flush is finished.- See Also:
SpanProcessor.forceFlush()
-
close
public void close()
Attempts to stop all the activity forTracers created by this provider. CallsSpanProcessor.shutdown()for all registeredSpanProcessors.This operation may block until all the Spans are processed. Must be called before turning off the main application to ensure all data are processed and exported.
After this is called, newly created
Spans will be no-ops.After this is called, further attempts at re-using this instance will result in undefined behavior. It should be considered a terminal operation for the SDK.
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-