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 ComponentLoadercomponentLoaderprivate ConfigPropertiesconfigprivate java.util.function.Function<ConfigProperties,ConfigProperties>configPropertiesCustomizerprivate booleancustomizedprivate static java.util.logging.Loggerloggerprivate java.util.function.BiFunction<SdkLoggerProviderBuilder,ConfigProperties,SdkLoggerProviderBuilder>loggerProviderCustomizerprivate java.util.function.BiFunction<? super LogRecordExporter,ConfigProperties,? extends LogRecordExporter>logRecordExporterCustomizerprivate java.util.function.BiFunction<? super LogRecordProcessor,ConfigProperties,? extends LogRecordProcessor>logRecordProcessorCustomizerprivate java.util.function.BiFunction<SdkMeterProviderBuilder,ConfigProperties,SdkMeterProviderBuilder>meterProviderCustomizerprivate java.util.function.BiFunction<? super MetricExporter,ConfigProperties,? extends MetricExporter>metricExporterCustomizerprivate java.util.function.BiFunction<? super MetricReader,ConfigProperties,? extends MetricReader>metricReaderCustomizerprivate java.util.function.BiFunction<? super TextMapPropagator,ConfigProperties,? extends TextMapPropagator>propagatorCustomizerprivate java.util.List<java.util.function.Function<ConfigProperties,java.util.Map<java.lang.String,java.lang.String>>>propertiesCustomizersprivate java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>>propertiesSupplierprivate booleanregisterShutdownHookprivate java.util.function.BiFunction<? super Resource,ConfigProperties,? extends Resource>resourceCustomizerprivate java.util.function.BiFunction<? super Sampler,ConfigProperties,? extends Sampler>samplerCustomizerprivate booleansetResultAsGlobalprivate java.util.function.BiFunction<? super SpanExporter,ConfigProperties,? extends SpanExporter>spanExporterCustomizerprivate java.util.function.BiFunction<? super SpanProcessor,ConfigProperties,? extends SpanProcessor>spanProcessorCustomizerprivate 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 AutoConfiguredOpenTelemetrySdkBuilderaddLoggerProviderCustomizer(java.util.function.BiFunction<SdkLoggerProviderBuilder,ConfigProperties,SdkLoggerProviderBuilder> loggerProviderCustomizer)Adds aBiFunctionto invoke the with theSdkLoggerProviderBuilderto allow customization.AutoConfiguredOpenTelemetrySdkBuilderaddLogRecordExporterCustomizer(java.util.function.BiFunction<? super LogRecordExporter,ConfigProperties,? extends LogRecordExporter> logRecordExporterCustomizer)Adds aBiFunctionto invoke with the default autoconfiguredLogRecordExporterto allow customization.AutoConfiguredOpenTelemetrySdkBuilderaddLogRecordProcessorCustomizer(java.util.function.BiFunction<? super LogRecordProcessor,ConfigProperties,? extends LogRecordProcessor> logRecordProcessorCustomizer)Adds aBiFunctionto invoke for all autoconfiguredLogRecordProcessors.AutoConfiguredOpenTelemetrySdkBuilderaddMeterProviderCustomizer(java.util.function.BiFunction<SdkMeterProviderBuilder,ConfigProperties,SdkMeterProviderBuilder> meterProviderCustomizer)Adds aBiFunctionto invoke the with theSdkMeterProviderBuilderto allow customization.AutoConfiguredOpenTelemetrySdkBuilderaddMetricExporterCustomizer(java.util.function.BiFunction<? super MetricExporter,ConfigProperties,? extends MetricExporter> metricExporterCustomizer)Adds aBiFunctionto invoke with the default autoconfiguredSpanExporterto allow customization.AutoConfiguredOpenTelemetrySdkBuilderaddMetricReaderCustomizer(java.util.function.BiFunction<? super MetricReader,ConfigProperties,? extends MetricReader> readerCustomizer)Adds aBiFunctionto invoke with the autoconfiguredMetricReaderto allow customization.AutoConfiguredOpenTelemetrySdkBuilderaddPropagatorCustomizer(java.util.function.BiFunction<? super TextMapPropagator,ConfigProperties,? extends TextMapPropagator> propagatorCustomizer)Adds aBiFunctionto invoke with the default autoconfiguredTextMapPropagatorto allow customization.AutoConfiguredOpenTelemetrySdkBuilderaddPropertiesCustomizer(java.util.function.Function<ConfigProperties,java.util.Map<java.lang.String,java.lang.String>> propertiesCustomizer)Adds aFunctionto invoke the with theConfigPropertiesto allow customization.AutoConfiguredOpenTelemetrySdkBuilderaddPropertiesSupplier(java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> propertiesSupplier)Adds aSupplierof a map of property names and values to use as defaults for theConfigPropertiesused during auto-configuration.AutoConfiguredOpenTelemetrySdkBuilderaddResourceCustomizer(java.util.function.BiFunction<? super Resource,ConfigProperties,? extends Resource> resourceCustomizer)Adds aBiFunctionto invoke with the default autoconfiguredResourceto allow customization.AutoConfiguredOpenTelemetrySdkBuilderaddSamplerCustomizer(java.util.function.BiFunction<? super Sampler,ConfigProperties,? extends Sampler> samplerCustomizer)Adds aBiFunctionto invoke with the default autoconfiguredSamplerto allow customization.AutoConfiguredOpenTelemetrySdkBuilderaddSpanExporterCustomizer(java.util.function.BiFunction<? super SpanExporter,ConfigProperties,? extends SpanExporter> spanExporterCustomizer)Adds aBiFunctionto invoke with the default autoconfiguredSpanExporterto allow customization.AutoConfiguredOpenTelemetrySdkBuilderaddSpanProcessorCustomizer(java.util.function.BiFunction<? super SpanProcessor,ConfigProperties,? extends SpanProcessor> spanProcessorCustomizer)Adds aBiFunctionto invoke for all autoconfiguredSpanProcessor.AutoConfiguredOpenTelemetrySdkBuilderaddTracerProviderCustomizer(java.util.function.BiFunction<SdkTracerProviderBuilder,ConfigProperties,SdkTracerProviderBuilder> tracerProviderCustomizer)Adds aBiFunctionto invoke the with theSdkTracerProviderBuilderto allow customization.AutoConfiguredOpenTelemetrySdkbuild()Returns a newAutoConfiguredOpenTelemetrySdkholding components auto-configured using the settings of thisAutoConfiguredOpenTelemetrySdkBuilder.(package private) voidcallAutoConfigureListeners(SpiHelper spiHelper, OpenTelemetrySdk openTelemetrySdk)private ConfigPropertiescomputeConfigProperties()AutoConfiguredOpenTelemetrySdkBuilderdisableShutdownHook()Disable the registration of a shutdown hook to shut down the SDK when appropriate.private ConfigPropertiesgetConfig()private static AutoConfiguredOpenTelemetrySdkmaybeConfigureFromFile(ConfigProperties config, ComponentLoader componentLoader)private voidmaybeRegisterShutdownHook(OpenTelemetrySdk openTelemetrySdk)private voidmaybeSetAsGlobal(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 voidmergeSdkTracerProviderConfigurer()(package private) AutoConfiguredOpenTelemetrySdkBuildersetComponentLoader(ComponentLoader componentLoader)Sets theComponentLoaderto be used to load SPI implementations.(package private) AutoConfiguredOpenTelemetrySdkBuildersetConfig(ConfigProperties config)Sets theConfigPropertiesto use when resolving properties for auto-configuration.(package private) AutoConfiguredOpenTelemetrySdkBuildersetConfigPropertiesCustomizer(java.util.function.Function<ConfigProperties,ConfigProperties> configPropertiesCustomizer)Adds aFunctionto invoke the with theConfigPropertiesto allow customization.AutoConfiguredOpenTelemetrySdkBuildersetResultAsGlobal()Sets whether the configuredOpenTelemetrySdkshould be set as the application's global instance.AutoConfiguredOpenTelemetrySdkBuildersetServiceClassLoader(java.lang.ClassLoader serviceClassLoader)Sets theClassLoaderto be used to load SPI implementations.(package private) java.lang.ThreadshutdownHook(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 theConfigPropertiesto 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 aBiFunctionto invoke the with theSdkTracerProviderBuilderto allow customization. The return value of theBiFunctionwill replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addTracerProviderCustomizerin interfaceAutoConfigurationCustomizer
-
addPropagatorCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addPropagatorCustomizer(java.util.function.BiFunction<? super TextMapPropagator,ConfigProperties,? extends TextMapPropagator> propagatorCustomizer)
Adds aBiFunctionto invoke with the default autoconfiguredTextMapPropagatorto allow customization. The return value of theBiFunctionwill replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addPropagatorCustomizerin interfaceAutoConfigurationCustomizer
-
addResourceCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addResourceCustomizer(java.util.function.BiFunction<? super Resource,ConfigProperties,? extends Resource> resourceCustomizer)
Adds aBiFunctionto invoke with the default autoconfiguredResourceto allow customization. The return value of theBiFunctionwill replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addResourceCustomizerin interfaceAutoConfigurationCustomizer
-
addSamplerCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addSamplerCustomizer(java.util.function.BiFunction<? super Sampler,ConfigProperties,? extends Sampler> samplerCustomizer)
Adds aBiFunctionto invoke with the default autoconfiguredSamplerto allow customization. The return value of theBiFunctionwill replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addSamplerCustomizerin interfaceAutoConfigurationCustomizer
-
addSpanExporterCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addSpanExporterCustomizer(java.util.function.BiFunction<? super SpanExporter,ConfigProperties,? extends SpanExporter> spanExporterCustomizer)
Adds aBiFunctionto invoke with the default autoconfiguredSpanExporterto allow customization. The return value of theBiFunctionwill replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addSpanExporterCustomizerin interfaceAutoConfigurationCustomizer
-
addSpanProcessorCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addSpanProcessorCustomizer(java.util.function.BiFunction<? super SpanProcessor,ConfigProperties,? extends SpanProcessor> spanProcessorCustomizer)
Adds aBiFunctionto invoke for all autoconfiguredSpanProcessor. The return value of theBiFunctionwill 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:
addSpanProcessorCustomizerin interfaceAutoConfigurationCustomizer
-
addPropertiesSupplier
public AutoConfiguredOpenTelemetrySdkBuilder addPropertiesSupplier(java.util.function.Supplier<java.util.Map<java.lang.String,java.lang.String>> propertiesSupplier)
Adds aSupplierof a map of property names and values to use as defaults for theConfigPropertiesused 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:
addPropertiesSupplierin interfaceAutoConfigurationCustomizer
-
addPropertiesCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addPropertiesCustomizer(java.util.function.Function<ConfigProperties,java.util.Map<java.lang.String,java.lang.String>> propertiesCustomizer)
Adds aFunctionto invoke the with theConfigPropertiesto allow customization. The return value of theFunctionwill be merged into theConfigPropertiesbefore 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:
addPropertiesCustomizerin interfaceAutoConfigurationCustomizer
-
setConfigPropertiesCustomizer
AutoConfiguredOpenTelemetrySdkBuilder setConfigPropertiesCustomizer(java.util.function.Function<ConfigProperties,ConfigProperties> configPropertiesCustomizer)
Adds aFunctionto invoke the with theConfigPropertiesto allow customization.The argument to the function is the
ConfigProperties, with theaddPropertiesCustomizer(Function)already applied.The return value of the
Functionreplace theConfigPropertiesto be used.
-
addMeterProviderCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addMeterProviderCustomizer(java.util.function.BiFunction<SdkMeterProviderBuilder,ConfigProperties,SdkMeterProviderBuilder> meterProviderCustomizer)
Adds aBiFunctionto invoke the with theSdkMeterProviderBuilderto allow customization. The return value of theBiFunctionwill replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addMeterProviderCustomizerin interfaceAutoConfigurationCustomizer
-
addMetricExporterCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addMetricExporterCustomizer(java.util.function.BiFunction<? super MetricExporter,ConfigProperties,? extends MetricExporter> metricExporterCustomizer)
Adds aBiFunctionto invoke with the default autoconfiguredSpanExporterto allow customization. The return value of theBiFunctionwill replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addMetricExporterCustomizerin interfaceAutoConfigurationCustomizer
-
addMetricReaderCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addMetricReaderCustomizer(java.util.function.BiFunction<? super MetricReader,ConfigProperties,? extends MetricReader> readerCustomizer)
Adds aBiFunctionto invoke with the autoconfiguredMetricReaderto allow customization. The return value of theBiFunctionwill replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addMetricReaderCustomizerin interfaceAutoConfigurationCustomizer
-
addLoggerProviderCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addLoggerProviderCustomizer(java.util.function.BiFunction<SdkLoggerProviderBuilder,ConfigProperties,SdkLoggerProviderBuilder> loggerProviderCustomizer)
Adds aBiFunctionto invoke the with theSdkLoggerProviderBuilderto allow customization. The return value of theBiFunctionwill replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addLoggerProviderCustomizerin interfaceAutoConfigurationCustomizer
-
addLogRecordExporterCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addLogRecordExporterCustomizer(java.util.function.BiFunction<? super LogRecordExporter,ConfigProperties,? extends LogRecordExporter> logRecordExporterCustomizer)
Adds aBiFunctionto invoke with the default autoconfiguredLogRecordExporterto allow customization. The return value of theBiFunctionwill replace the passed-in argument.Multiple calls will execute the customizers in order.
- Specified by:
addLogRecordExporterCustomizerin interfaceAutoConfigurationCustomizer
-
addLogRecordProcessorCustomizer
public AutoConfiguredOpenTelemetrySdkBuilder addLogRecordProcessorCustomizer(java.util.function.BiFunction<? super LogRecordProcessor,ConfigProperties,? extends LogRecordProcessor> logRecordProcessorCustomizer)
Adds aBiFunctionto invoke for all autoconfiguredLogRecordProcessors. The return value of theBiFunctionwill 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:
addLogRecordProcessorCustomizerin 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 configuredOpenTelemetrySdkshould be set as the application's global instance.By default,
GlobalOpenTelemetryis not set.
-
setServiceClassLoader
public AutoConfiguredOpenTelemetrySdkBuilder setServiceClassLoader(java.lang.ClassLoader serviceClassLoader)
Sets theClassLoaderto be used to load SPI implementations.
-
setComponentLoader
AutoConfiguredOpenTelemetrySdkBuilder setComponentLoader(ComponentLoader componentLoader)
Sets theComponentLoaderto be used to load SPI implementations.
-
build
public AutoConfiguredOpenTelemetrySdk build()
Returns a newAutoConfiguredOpenTelemetrySdkholding 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)
-
-