Class ReconfigurableOpenTelemetry
- All Implemented Interfaces:
ExtensionPoint,ExtendedOpenTelemetry,io.opentelemetry.api.OpenTelemetry,Closeable,AutoCloseable
Reconfigurable OpenTelemetry.
We need reconfigurability because Jenkins supports changing the configuration of the OpenTelemetry params at runtime.
All instantiated tracers, loggers, and eventLoggers are reconfigured when the configuration changes, when
configure(Map, Resource) is invoked.
Jenkins components interested in being notified after the OpenTelemetry configuration changes can be marked as @Extension
and implement OpenTelemetryLifecycleListener.
-
Nested Class Summary
Nested classes/interfaces inherited from interface hudson.ExtensionPoint
ExtensionPoint.LegacyInstancesAreScopedToHudson -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voidconfigure(Map<String, String> openTelemetryProperties, io.opentelemetry.sdk.resources.Resource openTelemetryResource) Deprecated.voidconfigure(Map<String, String> openTelemetryProperties, io.opentelemetry.sdk.resources.Resource openTelemetryResource, boolean disableShutdownHook) Reconfigures theOpenTelemetryinstance.static ReconfigurableOpenTelemetryget()Use a factory method for the @Extensionto ensure single instantiation across Jenkinsio.opentelemetry.sdk.autoconfigure.spi.ConfigPropertiesConfigPropertiesused to instantiate this OpenTelemetry instance using theAutoConfiguredOpenTelemetrySdk.io.opentelemetry.api.OpenTelemetryDeprecated.io.opentelemetry.sdk.logs.export.LogRecordExporterFor testing and troubleshooting purposeio.opentelemetry.api.logs.LoggerProviderio.opentelemetry.api.metrics.Meterio.opentelemetry.api.metrics.MeterProviderio.opentelemetry.context.propagation.ContextPropagatorsio.opentelemetry.sdk.resources.ResourceResourceused by this OpenTelemetry instance for the resource attributes of the produced telemetryio.opentelemetry.api.trace.Tracerio.opentelemetry.api.trace.Tracerio.opentelemetry.api.trace.TracerProviderstatic voidinit()io.opentelemetry.api.metrics.MeterBuildermeterBuilder(String instrumentationScopeName) protected voidprotected voidsetOpenTelemetryImpl(io.opentelemetry.api.OpenTelemetry openTelemetryImpl) io.opentelemetry.api.trace.TracerBuildertracerBuilder(String instrumentationScopeName)
-
Constructor Details
-
ReconfigurableOpenTelemetry
public ReconfigurableOpenTelemetry()Initialize as NoOp.
- See Also:
-
-
Method Details
-
init
-
get
Use a factory method for the @Extensionto ensure single instantiation across JenkinsThe Jenkins component
ReconfigurableOpenTelemetryis instantiated through the static factory methodget()rather than through the instance constructor to ensure that we have single instantiation across Jenkins' @Extensionand Google Guice @Inject.This factory method works in conjunction with
OpenTelemetryApiGuiceModule -
configure
@Deprecated public void configure(@NonNull Map<String, String> openTelemetryProperties, io.opentelemetry.sdk.resources.Resource openTelemetryResource) Deprecated.useconfigure(Map, Resource, boolean)insteadConfigure the OpenTelemetry SDK with the given properties and resource disabling the OTel SDK shutdown hook- Specified by:
configurein interfaceExtendedOpenTelemetry
-
configure
public void configure(@NonNull Map<String, String> openTelemetryProperties, io.opentelemetry.sdk.resources.Resource openTelemetryResource, boolean disableShutdownHook) Description copied from interface:ExtendedOpenTelemetryReconfigures theOpenTelemetryinstance. If no exporter is explicitly defined, this OpenTelemetry instance is NoOp.- Specified by:
configurein interfaceExtendedOpenTelemetry- Parameters:
openTelemetryProperties- properties used asConfigPropertiesthroughAutoConfiguredOpenTelemetrySdkBuilder.addPropertiesSupplier(Supplier)openTelemetryResource- resource attributes passed throughAutoConfiguredOpenTelemetrySdkBuilder.addResourceCustomizer(BiFunction)disableShutdownHook- enable / disable a shutdown hook
-
setOpenTelemetryImpl
protected void setOpenTelemetryImpl(io.opentelemetry.api.OpenTelemetry openTelemetryImpl) -
close
@PreDestroy public void close()- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-
getTracerProvider
public io.opentelemetry.api.trace.TracerProvider getTracerProvider()- Specified by:
getTracerProviderin interfaceio.opentelemetry.api.OpenTelemetry
-
getTracer
- Specified by:
getTracerin interfaceio.opentelemetry.api.OpenTelemetry
-
getTracer
public io.opentelemetry.api.trace.Tracer getTracer(String instrumentationScopeName, String instrumentationScopeVersion) - Specified by:
getTracerin interfaceio.opentelemetry.api.OpenTelemetry
-
tracerBuilder
- Specified by:
tracerBuilderin interfaceio.opentelemetry.api.OpenTelemetry
-
getMeterProvider
public io.opentelemetry.api.metrics.MeterProvider getMeterProvider()- Specified by:
getMeterProviderin interfaceio.opentelemetry.api.OpenTelemetry
-
getMeter
- Specified by:
getMeterin interfaceio.opentelemetry.api.OpenTelemetry
-
meterBuilder
- Specified by:
meterBuilderin interfaceio.opentelemetry.api.OpenTelemetry
-
getImplementation
Deprecated.- Specified by:
getImplementationin interfaceExtendedOpenTelemetry
-
getResource
@NonNull public io.opentelemetry.sdk.resources.Resource getResource()Description copied from interface:ExtendedOpenTelemetryResourceused by this OpenTelemetry instance for the resource attributes of the produced telemetry- Specified by:
getResourcein interfaceExtendedOpenTelemetry
-
getConfig
@NonNull public io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties getConfig()Description copied from interface:ExtendedOpenTelemetryConfigPropertiesused to instantiate this OpenTelemetry instance using theAutoConfiguredOpenTelemetrySdk.- Specified by:
getConfigin interfaceExtendedOpenTelemetry
-
getLogsBridge
public io.opentelemetry.api.logs.LoggerProvider getLogsBridge()- Specified by:
getLogsBridgein interfaceio.opentelemetry.api.OpenTelemetry
-
getPropagators
public io.opentelemetry.context.propagation.ContextPropagators getPropagators()- Specified by:
getPropagatorsin interfaceio.opentelemetry.api.OpenTelemetry
-
getLogRecordExporter
public io.opentelemetry.sdk.logs.export.LogRecordExporter getLogRecordExporter()For testing and troubleshooting purpose -
postOpenTelemetrySdkConfiguration
@OverridingMethodsMustInvokeSuper protected void postOpenTelemetrySdkConfiguration()
-
configure(Map, Resource, boolean)instead