Class SdkTracerProviderBuilder

java.lang.Object
io.opentelemetry.sdk.trace.SdkTracerProviderBuilder

public final class SdkTracerProviderBuilder extends Object
Builder of SdkTracerProvider.
  • Method Details

    • setClock

      public SdkTracerProviderBuilder setClock(io.opentelemetry.sdk.common.Clock clock)
      Assign a Clock. Clock will be used each time a Span is started, ended or any event is recorded.

      The clock must 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 an IdGenerator. IdGenerator will be used each time a Span is started.

      The idGenerator must 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(io.opentelemetry.sdk.resources.Resource resource)
      Assign a Resource to be attached to all Spans created by Tracers.
      Parameters:
      resource - A Resource implementation.
      Returns:
      this
    • addResource

      public SdkTracerProviderBuilder addResource(io.opentelemetry.sdk.resources.Resource resource)
      Merge a Resource with the current.
      Parameters:
      resource - Resource to merge with current.
      Since:
      1.29.0
    • setSpanLimits

      public SdkTracerProviderBuilder setSpanLimits(SpanLimits spanLimits)
      Assign an initial SpanLimits that 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 every Span.
      Returns:
      this
    • setSpanLimits

      public SdkTracerProviderBuilder setSpanLimits(Supplier<SpanLimits> spanLimitsSupplier)
      Assign a Supplier of SpanLimits. SpanLimits will be retrieved each time a Span is started.

      The spanLimitsSupplier must be thread-safe and return immediately (no remote calls, as contention free as possible).

      Parameters:
      spanLimitsSupplier - the supplier that will be used to retrieve the SpanLimits for every Span.
      Returns:
      this
    • setSampler

      public SdkTracerProviderBuilder setSampler(Sampler sampler)
      Assign a Sampler to use for sampling traces. Sampler will be called each time a Span is started.

      The sampler must be thread-safe and return immediately (no remote calls, as contention free as possible).

      Parameters:
      sampler - the Sampler to use for sampling traces.
      Returns:
      this
    • addSpanProcessor

      public SdkTracerProviderBuilder addSpanProcessor(SpanProcessor spanProcessor)
      Add a SpanProcessor to the span pipeline that will be built. SpanProcessor will be called each time a Span is started or ended.

      The spanProcessor must 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
    • build

      public SdkTracerProvider build()
      Create a new SdkTracerProvider instance with the configuration.
      Returns:
      The instance.