Class AutoConfiguredOpenTelemetrySdkBuilder
- java.lang.Object
-
- io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdkBuilder
-
- All Implemented Interfaces:
AutoConfigurationCustomizer
public final class AutoConfiguredOpenTelemetrySdkBuilder extends java.lang.Object implements 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
-
-
Field Summary
Fields Modifier and Type Field Description private ComponentLoader
componentLoader
private ConfigProperties
config
private java.util.function.Function<ConfigProperties,ConfigProperties>
configPropertiesCustomizer
private boolean
customized
private static java.util.logging.Logger
logger
private java.util.function.BiFunction<SdkLoggerProviderBuilder,ConfigProperties,SdkLoggerProviderBuilder>
loggerProviderCustomizer
private java.util.function.BiFunction<? super LogRecordExporter,ConfigProperties,? extends LogRecordExporter>
logRecordExporterCustomizer
private java.util.function.BiFunction<? super LogRecordProcessor,ConfigProperties,? extends LogRecordProcessor>
logRecordProcessorCustomizer
private java.util.function.BiFunction<SdkMeterProviderBuilder,ConfigProperties,SdkMeterProviderBuilder>
meterProviderCustomizer
private java.util.function.BiFunction<? super MetricExporter,ConfigProperties,? extends MetricExporter>
metricExporterCustomizer
private java.util.function.BiFunction<? super MetricReader,ConfigProperties,? extends MetricReader>
metricReaderCustomizer
private java.util.function.BiFunction<? super TextMapPropagator,ConfigProperties,? extends TextMapPropagator>
propagatorCustomizer
private java.util.List<java.util.function.Function<ConfigProperties,java.util.Map<java.lang.String,java.lang.String>>>
propertiesCustomizers
private java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>>
propertiesSupplier
private boolean
registerShutdownHook
private java.util.function.BiFunction<? super Resource,ConfigProperties,? extends Resource>
resourceCustomizer
private java.util.function.BiFunction<? super Sampler,ConfigProperties,? extends Sampler>
samplerCustomizer
private boolean
setResultAsGlobal
private java.util.function.BiFunction<? super SpanExporter,ConfigProperties,? extends SpanExporter>
spanExporterCustomizer
private java.util.function.BiFunction<? super SpanProcessor,ConfigProperties,? extends SpanProcessor>
spanProcessorCustomizer
private java.util.function.BiFunction<SdkTracerProviderBuilder,ConfigProperties,SdkTracerProviderBuilder>
tracerProviderCustomizer
-
Constructor Summary
Constructors Constructor Description AutoConfiguredOpenTelemetrySdkBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AutoConfiguredOpenTelemetrySdkBuilder
addLoggerProviderCustomizer(java.util.function.BiFunction<SdkLoggerProviderBuilder,ConfigProperties,SdkLoggerProviderBuilder> loggerProviderCustomizer)
Adds aBiFunction
to invoke the with theSdkLoggerProviderBuilder
to allow customization.AutoConfiguredOpenTelemetrySdkBuilder
addLogRecordExporterCustomizer(java.util.function.BiFunction<? super LogRecordExporter,ConfigProperties,? extends LogRecordExporter> logRecordExporterCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredLogRecordExporter
to allow customization.AutoConfiguredOpenTelemetrySdkBuilder
addLogRecordProcessorCustomizer(java.util.function.BiFunction<? super LogRecordProcessor,ConfigProperties,? extends LogRecordProcessor> logRecordProcessorCustomizer)
Adds aBiFunction
to invoke for all autoconfiguredLogRecordProcessor
s.AutoConfiguredOpenTelemetrySdkBuilder
addMeterProviderCustomizer(java.util.function.BiFunction<SdkMeterProviderBuilder,ConfigProperties,SdkMeterProviderBuilder> meterProviderCustomizer)
Adds aBiFunction
to invoke the with theSdkMeterProviderBuilder
to allow customization.AutoConfiguredOpenTelemetrySdkBuilder
addMetricExporterCustomizer(java.util.function.BiFunction<? super MetricExporter,ConfigProperties,? extends MetricExporter> metricExporterCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredSpanExporter
to allow customization.AutoConfiguredOpenTelemetrySdkBuilder
addMetricReaderCustomizer(java.util.function.BiFunction<? super MetricReader,ConfigProperties,? extends MetricReader> readerCustomizer)
Adds aBiFunction
to invoke with the autoconfiguredMetricReader
to allow customization.AutoConfiguredOpenTelemetrySdkBuilder
addPropagatorCustomizer(java.util.function.BiFunction<? super TextMapPropagator,ConfigProperties,? extends TextMapPropagator> propagatorCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredTextMapPropagator
to allow customization.AutoConfiguredOpenTelemetrySdkBuilder
addPropertiesCustomizer(java.util.function.Function<ConfigProperties,java.util.Map<java.lang.String,java.lang.String>> propertiesCustomizer)
Adds aFunction
to invoke the with theConfigProperties
to allow customization.AutoConfiguredOpenTelemetrySdkBuilder
addPropertiesSupplier(java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> propertiesSupplier)
Adds aSupplier
of a map of property names and values to use as defaults for theConfigProperties
used during auto-configuration.AutoConfiguredOpenTelemetrySdkBuilder
addResourceCustomizer(java.util.function.BiFunction<? super Resource,ConfigProperties,? extends Resource> resourceCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredResource
to allow customization.AutoConfiguredOpenTelemetrySdkBuilder
addSamplerCustomizer(java.util.function.BiFunction<? super Sampler,ConfigProperties,? extends Sampler> samplerCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredSampler
to allow customization.AutoConfiguredOpenTelemetrySdkBuilder
addSpanExporterCustomizer(java.util.function.BiFunction<? super SpanExporter,ConfigProperties,? extends SpanExporter> spanExporterCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredSpanExporter
to allow customization.AutoConfiguredOpenTelemetrySdkBuilder
addSpanProcessorCustomizer(java.util.function.BiFunction<? super SpanProcessor,ConfigProperties,? extends SpanProcessor> spanProcessorCustomizer)
Adds aBiFunction
to invoke for all autoconfiguredSpanProcessor
.AutoConfiguredOpenTelemetrySdkBuilder
addTracerProviderCustomizer(java.util.function.BiFunction<SdkTracerProviderBuilder,ConfigProperties,SdkTracerProviderBuilder> tracerProviderCustomizer)
Adds aBiFunction
to invoke the with theSdkTracerProviderBuilder
to allow customization.AutoConfiguredOpenTelemetrySdk
build()
Returns a newAutoConfiguredOpenTelemetrySdk
holding components auto-configured using the settings of thisAutoConfiguredOpenTelemetrySdkBuilder
.(package private) void
callAutoConfigureListeners(SpiHelper spiHelper, OpenTelemetrySdk openTelemetrySdk)
private ConfigProperties
computeConfigProperties()
AutoConfiguredOpenTelemetrySdkBuilder
disableShutdownHook()
Disable the registration of a shutdown hook to shut down the SDK when appropriate.private ConfigProperties
getConfig()
private static AutoConfiguredOpenTelemetrySdk
maybeConfigureFromFile(ConfigProperties config, ComponentLoader componentLoader)
private void
maybeRegisterShutdownHook(OpenTelemetrySdk openTelemetrySdk)
private void
maybeSetAsGlobal(OpenTelemetrySdk openTelemetrySdk)
private static <I,O1,O2>
java.util.function.BiFunction<I,ConfigProperties,O2>mergeCustomizer(java.util.function.BiFunction<? super I,ConfigProperties,? extends O1> first, java.util.function.BiFunction<? super O1,ConfigProperties,? extends O2> second)
private static java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>>
mergeProperties(java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> first, java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> second)
private void
mergeSdkTracerProviderConfigurer()
(package private) AutoConfiguredOpenTelemetrySdkBuilder
setComponentLoader(ComponentLoader componentLoader)
Sets theComponentLoader
to be used to load SPI implementations.(package private) AutoConfiguredOpenTelemetrySdkBuilder
setConfig(ConfigProperties config)
Sets theConfigProperties
to use when resolving properties for auto-configuration.(package private) AutoConfiguredOpenTelemetrySdkBuilder
setConfigPropertiesCustomizer(java.util.function.Function<ConfigProperties,ConfigProperties> configPropertiesCustomizer)
Adds aFunction
to invoke the with theConfigProperties
to allow customization.AutoConfiguredOpenTelemetrySdkBuilder
setResultAsGlobal()
Sets whether the configuredOpenTelemetrySdk
should be set as the application's global instance.AutoConfiguredOpenTelemetrySdkBuilder
setServiceClassLoader(java.lang.ClassLoader serviceClassLoader)
Sets theClassLoader
to be used to load SPI implementations.(package private) java.lang.Thread
shutdownHook(OpenTelemetrySdk sdk)
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
config
@Nullable private ConfigProperties config
-
tracerProviderCustomizer
private java.util.function.BiFunction<SdkTracerProviderBuilder,ConfigProperties,SdkTracerProviderBuilder> tracerProviderCustomizer
-
propagatorCustomizer
private java.util.function.BiFunction<? super TextMapPropagator,ConfigProperties,? extends TextMapPropagator> propagatorCustomizer
-
spanExporterCustomizer
private java.util.function.BiFunction<? super SpanExporter,ConfigProperties,? extends SpanExporter> spanExporterCustomizer
-
spanProcessorCustomizer
private java.util.function.BiFunction<? super SpanProcessor,ConfigProperties,? extends SpanProcessor> spanProcessorCustomizer
-
samplerCustomizer
private java.util.function.BiFunction<? super Sampler,ConfigProperties,? extends Sampler> samplerCustomizer
-
meterProviderCustomizer
private java.util.function.BiFunction<SdkMeterProviderBuilder,ConfigProperties,SdkMeterProviderBuilder> meterProviderCustomizer
-
metricExporterCustomizer
private java.util.function.BiFunction<? super MetricExporter,ConfigProperties,? extends MetricExporter> metricExporterCustomizer
-
metricReaderCustomizer
private java.util.function.BiFunction<? super MetricReader,ConfigProperties,? extends MetricReader> metricReaderCustomizer
-
loggerProviderCustomizer
private java.util.function.BiFunction<SdkLoggerProviderBuilder,ConfigProperties,SdkLoggerProviderBuilder> loggerProviderCustomizer
-
logRecordExporterCustomizer
private java.util.function.BiFunction<? super LogRecordExporter,ConfigProperties,? extends LogRecordExporter> logRecordExporterCustomizer
-
logRecordProcessorCustomizer
private java.util.function.BiFunction<? super LogRecordProcessor,ConfigProperties,? extends LogRecordProcessor> logRecordProcessorCustomizer
-
resourceCustomizer
private java.util.function.BiFunction<? super Resource,ConfigProperties,? extends Resource> resourceCustomizer
-
propertiesSupplier
private java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> propertiesSupplier
-
propertiesCustomizers
private final java.util.List<java.util.function.Function<ConfigProperties,java.util.Map<java.lang.String,java.lang.String>>> propertiesCustomizers
-
configPropertiesCustomizer
private java.util.function.Function<ConfigProperties,ConfigProperties> configPropertiesCustomizer
-
componentLoader
private ComponentLoader componentLoader
-
registerShutdownHook
private boolean registerShutdownHook
-
setResultAsGlobal
private boolean setResultAsGlobal
-
customized
private boolean customized
-
-
Method Detail
-
setConfig
AutoConfiguredOpenTelemetrySdkBuilder setConfig(ConfigProperties config)
Sets theConfigProperties
to use when resolving properties for auto-configuration.addPropertiesSupplier(Supplier)
andaddPropertiesCustomizer(Function)
will have no effect if this method is used.
-
addTracerProviderCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addTracerProviderCustomizer(java.util.function.BiFunction<SdkTracerProviderBuilder,ConfigProperties,SdkTracerProviderBuilder> tracerProviderCustomizer)
Adds aBiFunction
to invoke the with theSdkTracerProviderBuilder
to allow customization. The return value of theBiFunction
will replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addTracerProviderCustomizer
in interfaceAutoConfigurationCustomizer
-
addPropagatorCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addPropagatorCustomizer(java.util.function.BiFunction<? super TextMapPropagator,ConfigProperties,? extends TextMapPropagator> propagatorCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredTextMapPropagator
to allow customization. The return value of theBiFunction
will replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addPropagatorCustomizer
in interfaceAutoConfigurationCustomizer
-
addResourceCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addResourceCustomizer(java.util.function.BiFunction<? super Resource,ConfigProperties,? extends Resource> resourceCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredResource
to allow customization. The return value of theBiFunction
will replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addResourceCustomizer
in interfaceAutoConfigurationCustomizer
-
addSamplerCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addSamplerCustomizer(java.util.function.BiFunction<? super Sampler,ConfigProperties,? extends Sampler> samplerCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredSampler
to allow customization. The return value of theBiFunction
will replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addSamplerCustomizer
in interfaceAutoConfigurationCustomizer
-
addSpanExporterCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addSpanExporterCustomizer(java.util.function.BiFunction<? super SpanExporter,ConfigProperties,? extends SpanExporter> spanExporterCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredSpanExporter
to allow customization. The return value of theBiFunction
will replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addSpanExporterCustomizer
in interfaceAutoConfigurationCustomizer
-
addSpanProcessorCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addSpanProcessorCustomizer(java.util.function.BiFunction<? super SpanProcessor,ConfigProperties,? extends SpanProcessor> spanProcessorCustomizer)
Adds aBiFunction
to invoke for all autoconfiguredSpanProcessor
. The return value of theBiFunction
will replace the passed-in argument. In contrast toaddSpanExporterCustomizer(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 interfaceAutoConfigurationCustomizer
-
addPropertiesSupplier
public AutoConfiguredOpenTelemetrySdkBuilder addPropertiesSupplier(java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> propertiesSupplier)
Adds aSupplier
of a map of property names and values to use as defaults for theConfigProperties
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 interfaceAutoConfigurationCustomizer
-
addPropertiesCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addPropertiesCustomizer(java.util.function.Function<ConfigProperties,java.util.Map<java.lang.String,java.lang.String>> propertiesCustomizer)
Adds aFunction
to invoke the with theConfigProperties
to allow customization. The return value of theFunction
will be merged into theConfigProperties
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 interfaceAutoConfigurationCustomizer
-
setConfigPropertiesCustomizer
AutoConfiguredOpenTelemetrySdkBuilder setConfigPropertiesCustomizer(java.util.function.Function<ConfigProperties,ConfigProperties> configPropertiesCustomizer)
Adds aFunction
to invoke the with theConfigProperties
to allow customization.The argument to the function is the
ConfigProperties
, with theaddPropertiesCustomizer(Function)
already applied.The return value of the
Function
replace theConfigProperties
to be used.
-
addMeterProviderCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addMeterProviderCustomizer(java.util.function.BiFunction<SdkMeterProviderBuilder,ConfigProperties,SdkMeterProviderBuilder> meterProviderCustomizer)
Adds aBiFunction
to invoke the with theSdkMeterProviderBuilder
to allow customization. The return value of theBiFunction
will replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addMeterProviderCustomizer
in interfaceAutoConfigurationCustomizer
-
addMetricExporterCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addMetricExporterCustomizer(java.util.function.BiFunction<? super MetricExporter,ConfigProperties,? extends MetricExporter> metricExporterCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredSpanExporter
to allow customization. The return value of theBiFunction
will replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addMetricExporterCustomizer
in interfaceAutoConfigurationCustomizer
-
addMetricReaderCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addMetricReaderCustomizer(java.util.function.BiFunction<? super MetricReader,ConfigProperties,? extends MetricReader> readerCustomizer)
Adds aBiFunction
to invoke with the autoconfiguredMetricReader
to allow customization. The return value of theBiFunction
will replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addMetricReaderCustomizer
in interfaceAutoConfigurationCustomizer
-
addLoggerProviderCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addLoggerProviderCustomizer(java.util.function.BiFunction<SdkLoggerProviderBuilder,ConfigProperties,SdkLoggerProviderBuilder> loggerProviderCustomizer)
Adds aBiFunction
to invoke the with theSdkLoggerProviderBuilder
to allow customization. The return value of theBiFunction
will replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addLoggerProviderCustomizer
in interfaceAutoConfigurationCustomizer
-
addLogRecordExporterCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addLogRecordExporterCustomizer(java.util.function.BiFunction<? super LogRecordExporter,ConfigProperties,? extends LogRecordExporter> logRecordExporterCustomizer)
Adds aBiFunction
to invoke with the default autoconfiguredLogRecordExporter
to allow customization. The return value of theBiFunction
will replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addLogRecordExporterCustomizer
in interfaceAutoConfigurationCustomizer
-
addLogRecordProcessorCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addLogRecordProcessorCustomizer(java.util.function.BiFunction<? super LogRecordProcessor,ConfigProperties,? extends LogRecordProcessor> logRecordProcessorCustomizer)
Adds aBiFunction
to invoke for all autoconfiguredLogRecordProcessor
s. The return value of theBiFunction
will replace the passed-in argument. In contrast toaddLogRecordExporterCustomizer(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 interfaceAutoConfigurationCustomizer
-
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 configuredOpenTelemetrySdk
should be set as the application's global instance.By default,
GlobalOpenTelemetry
is not set.
-
setServiceClassLoader
public AutoConfiguredOpenTelemetrySdkBuilder setServiceClassLoader(java.lang.ClassLoader serviceClassLoader)
Sets theClassLoader
to be used to load SPI implementations.
-
setComponentLoader
AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(ComponentLoader componentLoader)
Sets theComponentLoader
to be used to load SPI implementations.
-
build
public AutoConfiguredOpenTelemetrySdk build()
Returns a newAutoConfiguredOpenTelemetrySdk
holding components auto-configured using the settings of thisAutoConfiguredOpenTelemetrySdkBuilder
.
-
maybeConfigureFromFile
@Nullable private static AutoConfiguredOpenTelemetrySdk maybeConfigureFromFile(ConfigProperties config, ComponentLoader componentLoader)
-
maybeRegisterShutdownHook
private void maybeRegisterShutdownHook(OpenTelemetrySdk openTelemetrySdk)
-
maybeSetAsGlobal
private void maybeSetAsGlobal(OpenTelemetrySdk openTelemetrySdk)
-
callAutoConfigureListeners
void callAutoConfigureListeners(SpiHelper spiHelper, OpenTelemetrySdk openTelemetrySdk)
-
mergeSdkTracerProviderConfigurer
private void mergeSdkTracerProviderConfigurer()
-
getConfig
private ConfigProperties getConfig()
-
computeConfigProperties
private ConfigProperties computeConfigProperties()
-
shutdownHook
java.lang.Thread shutdownHook(OpenTelemetrySdk sdk)
-
mergeCustomizer
private static <I,O1,O2> java.util.function.BiFunction<I,ConfigProperties,O2> mergeCustomizer(java.util.function.BiFunction<? super I,ConfigProperties,? extends O1> first, java.util.function.BiFunction<? super O1,ConfigProperties,? extends O2> second)
-
mergeProperties
private static java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> mergeProperties(java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> first, java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> second)
-
-