Class AutoConfiguredOpenTelemetrySdkBuilder

java.lang.Object
io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder
All Implemented Interfaces:
io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer

public final class AutoConfiguredOpenTelemetrySdkBuilder extends Object implements io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
A builder for configuring auto-configuration of the OpenTelemetry SDK. Notably, auto-configured components can be customized, for example by delegating to them from a wrapper that tweaks behavior such as filtering out telemetry attributes.
Since:
1.28.0
  • Method Details

    • addTracerProviderCustomizer

      public AutoConfiguredOpenTelemetrySdkBuilder addTracerProviderCustomizer(BiFunction<io.opentelemetry.sdk.trace.SdkTracerProviderBuilder,io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,io.opentelemetry.sdk.trace.SdkTracerProviderBuilder> tracerProviderCustomizer)
      Adds a BiFunction to invoke the with the SdkTracerProviderBuilder to allow customization. The return value of the BiFunction will replace the passed-in argument.

      Multiple calls will execute the customizers in order.

      Specified by:
      addTracerProviderCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addPropagatorCustomizer

      public AutoConfiguredOpenTelemetrySdkBuilder addPropagatorCustomizer(BiFunction<? super io.opentelemetry.context.propagation.TextMapPropagator,io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,? extends io.opentelemetry.context.propagation.TextMapPropagator> propagatorCustomizer)
      Adds a BiFunction to invoke with the default autoconfigured TextMapPropagator to allow customization. The return value of the BiFunction will replace the passed-in argument.

      Multiple calls will execute the customizers in order.

      Specified by:
      addPropagatorCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addResourceCustomizer

      public AutoConfiguredOpenTelemetrySdkBuilder addResourceCustomizer(BiFunction<? super io.opentelemetry.sdk.resources.Resource,io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,? extends io.opentelemetry.sdk.resources.Resource> resourceCustomizer)
      Adds a BiFunction to invoke with the default autoconfigured Resource to allow customization. The return value of the BiFunction will replace the passed-in argument.

      Multiple calls will execute the customizers in order.

      Specified by:
      addResourceCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addSamplerCustomizer

      public AutoConfiguredOpenTelemetrySdkBuilder addSamplerCustomizer(BiFunction<? super io.opentelemetry.sdk.trace.samplers.Sampler,io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,? extends io.opentelemetry.sdk.trace.samplers.Sampler> samplerCustomizer)
      Adds a BiFunction to invoke with the default autoconfigured Sampler to allow customization. The return value of the BiFunction will replace the passed-in argument.

      Multiple calls will execute the customizers in order.

      Specified by:
      addSamplerCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addSpanExporterCustomizer

      public AutoConfiguredOpenTelemetrySdkBuilder addSpanExporterCustomizer(BiFunction<? super io.opentelemetry.sdk.trace.export.SpanExporter,io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,? extends io.opentelemetry.sdk.trace.export.SpanExporter> spanExporterCustomizer)
      Adds a BiFunction to invoke with the default autoconfigured SpanExporter to allow customization. The return value of the BiFunction will replace the passed-in argument.

      Multiple calls will execute the customizers in order.

      Specified by:
      addSpanExporterCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addSpanProcessorCustomizer

      public AutoConfiguredOpenTelemetrySdkBuilder addSpanProcessorCustomizer(BiFunction<? super io.opentelemetry.sdk.trace.SpanProcessor,io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,? extends io.opentelemetry.sdk.trace.SpanProcessor> spanProcessorCustomizer)
      Adds a BiFunction to invoke for all autoconfigured SpanProcessor. The return value of the BiFunction will replace the passed-in argument. In contrast to addSpanExporterCustomizer(BiFunction) this allows modifications to happen before batching occurs. As a result, it is possible to efficiently filter spans, add artificial spans or delay spans for enhancing them with external, delayed data.

      Multiple calls will execute the customizers in order.

      Specified by:
      addSpanProcessorCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addPropertiesSupplier

      public AutoConfiguredOpenTelemetrySdkBuilder addPropertiesSupplier(Supplier<Map<String,String>> propertiesSupplier)
      Adds a Supplier of a map of property names and values to use as defaults for the ConfigProperties used during auto-configuration. The order of precedence of properties is system properties > environment variables > the suppliers registered with this method.

      Multiple calls will cause properties to be merged in order, with later ones overwriting duplicate keys in earlier ones.

      Specified by:
      addPropertiesSupplier in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addPropertiesCustomizer

      public AutoConfiguredOpenTelemetrySdkBuilder addPropertiesCustomizer(Function<io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,Map<String,String>> propertiesCustomizer)
      Adds a Function to invoke the with the ConfigProperties to allow customization. The return value of the Function will be merged into the ConfigProperties before it is used for auto-configuration, overwriting the properties that are already there.

      Multiple calls will cause properties to be merged in order, with later ones overwriting duplicate keys in earlier ones.

      Specified by:
      addPropertiesCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addMeterProviderCustomizer

      public AutoConfiguredOpenTelemetrySdkBuilder addMeterProviderCustomizer(BiFunction<io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder,io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,io.opentelemetry.sdk.metrics.SdkMeterProviderBuilder> meterProviderCustomizer)
      Adds a BiFunction to invoke the with the SdkMeterProviderBuilder to allow customization. The return value of the BiFunction will replace the passed-in argument.

      Multiple calls will execute the customizers in order.

      Specified by:
      addMeterProviderCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addMetricExporterCustomizer

      public AutoConfiguredOpenTelemetrySdkBuilder addMetricExporterCustomizer(BiFunction<? super io.opentelemetry.sdk.metrics.export.MetricExporter,io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,? extends io.opentelemetry.sdk.metrics.export.MetricExporter> metricExporterCustomizer)
      Adds a BiFunction to invoke with the default autoconfigured SpanExporter to allow customization. The return value of the BiFunction will replace the passed-in argument.

      Multiple calls will execute the customizers in order.

      Specified by:
      addMetricExporterCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addLoggerProviderCustomizer

      public AutoConfiguredOpenTelemetrySdkBuilder addLoggerProviderCustomizer(BiFunction<io.opentelemetry.sdk.logs.SdkLoggerProviderBuilder,io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,io.opentelemetry.sdk.logs.SdkLoggerProviderBuilder> loggerProviderCustomizer)
      Adds a BiFunction to invoke the with the SdkLoggerProviderBuilder to allow customization. The return value of the BiFunction will replace the passed-in argument.

      Multiple calls will execute the customizers in order.

      Specified by:
      addLoggerProviderCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addLogRecordExporterCustomizer

      public AutoConfiguredOpenTelemetrySdkBuilder addLogRecordExporterCustomizer(BiFunction<? super io.opentelemetry.sdk.logs.export.LogRecordExporter,io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,? extends io.opentelemetry.sdk.logs.export.LogRecordExporter> logRecordExporterCustomizer)
      Adds a BiFunction to invoke with the default autoconfigured LogRecordExporter to allow customization. The return value of the BiFunction will replace the passed-in argument.

      Multiple calls will execute the customizers in order.

      Specified by:
      addLogRecordExporterCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • addLogRecordProcessorCustomizer

      public io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer addLogRecordProcessorCustomizer(BiFunction<? super io.opentelemetry.sdk.logs.LogRecordProcessor,io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties,? extends io.opentelemetry.sdk.logs.LogRecordProcessor> logRecordProcessorCustomizer)
      Adds a BiFunction to invoke for all autoconfigured LogRecordProcessors. The return value of the BiFunction will replace the passed-in argument. In contrast to addLogRecordExporterCustomizer(BiFunction) (BiFunction)} this allows modifications to happen before batching occurs. As a result, it is possible to efficiently filter logs, add artificial logs or delay logs for enhancing them with external, delayed data.

      Multiple calls will execute the customizers in order.

      Specified by:
      addLogRecordProcessorCustomizer in interface io.opentelemetry.sdk.autoconfigure.spi.AutoConfigurationCustomizer
    • disableShutdownHook

      public AutoConfiguredOpenTelemetrySdkBuilder disableShutdownHook()
      Disable the registration of a shutdown hook to shut down the SDK when appropriate. By default, the shutdown hook is registered.

      Skipping the registration of the shutdown hook may cause unexpected behavior. This configuration is for SDK consumers that require control over the SDK lifecycle. In this case, alternatives must be provided by the SDK consumer to shut down the SDK.

    • setResultAsGlobal

      public AutoConfiguredOpenTelemetrySdkBuilder setResultAsGlobal()
      Sets whether the configured OpenTelemetrySdk should be set as the application's global instance.

      By default, GlobalOpenTelemetry is not set.

    • setServiceClassLoader

      public AutoConfiguredOpenTelemetrySdkBuilder setServiceClassLoader(ClassLoader serviceClassLoader)
      Sets the ClassLoader to be used to load SPI implementations.
    • build

      Returns a new AutoConfiguredOpenTelemetrySdk holding components auto-configured using the settings of this AutoConfiguredOpenTelemetrySdkBuilder.