Class ReconfigurableOpenTelemetry

java.lang.Object
io.jenkins.plugins.opentelemetry.api.ReconfigurableOpenTelemetry
All Implemented Interfaces:
ExtensionPoint, ExtendedOpenTelemetry, io.opentelemetry.api.OpenTelemetry, Closeable, AutoCloseable

@Extension(ordinal=2.147483647E9) public class ReconfigurableOpenTelemetry extends Object implements ExtendedOpenTelemetry, io.opentelemetry.api.OpenTelemetry, Closeable, ExtensionPoint

Reconfigurable EventLoggerProvider that allows to reconfigure the Tracers, Loggers, and EventLoggers.

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.

  • Field Details

    • logger

      protected final Logger logger
  • Constructor Details

    • ReconfigurableOpenTelemetry

      public ReconfigurableOpenTelemetry()
      Initialize as NoOp
  • Method Details

    • init

    • configure

      @Deprecated public void configure(@NonNull Map<String,String> openTelemetryProperties, io.opentelemetry.sdk.resources.Resource openTelemetryResource)
      Deprecated.
      Configure the OpenTelemetry SDK with the given properties and resource disabling the OTel SDK shutdown hook
      Specified by:
      configure in interface ExtendedOpenTelemetry
    • configure

      public void configure(@NonNull Map<String,String> openTelemetryProperties, io.opentelemetry.sdk.resources.Resource openTelemetryResource, boolean disableShutdownHook)
      Specified by:
      configure in interface ExtendedOpenTelemetry
    • setOpenTelemetryImpl

      protected void setOpenTelemetryImpl(io.opentelemetry.api.OpenTelemetry openTelemetryImpl)
    • close

      @PreDestroy public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface Closeable
    • getTracerProvider

      public io.opentelemetry.api.trace.TracerProvider getTracerProvider()
      Specified by:
      getTracerProvider in interface io.opentelemetry.api.OpenTelemetry
    • getTracer

      public io.opentelemetry.api.trace.Tracer getTracer(String instrumentationScopeName)
      Specified by:
      getTracer in interface io.opentelemetry.api.OpenTelemetry
    • getTracer

      public io.opentelemetry.api.trace.Tracer getTracer(String instrumentationScopeName, String instrumentationScopeVersion)
      Specified by:
      getTracer in interface io.opentelemetry.api.OpenTelemetry
    • tracerBuilder

      public io.opentelemetry.api.trace.TracerBuilder tracerBuilder(String instrumentationScopeName)
      Specified by:
      tracerBuilder in interface io.opentelemetry.api.OpenTelemetry
    • getMeterProvider

      public io.opentelemetry.api.metrics.MeterProvider getMeterProvider()
      Specified by:
      getMeterProvider in interface io.opentelemetry.api.OpenTelemetry
    • getEventLoggerProvider

      public io.opentelemetry.api.incubator.events.EventLoggerProvider getEventLoggerProvider()
      Specified by:
      getEventLoggerProvider in interface ExtendedOpenTelemetry
    • eventLoggerBuilder

      public io.opentelemetry.api.incubator.events.EventLoggerBuilder eventLoggerBuilder(String instrumentationScopeName)
      Specified by:
      eventLoggerBuilder in interface ExtendedOpenTelemetry
    • getMeter

      public io.opentelemetry.api.metrics.Meter getMeter(String instrumentationScopeName)
      Specified by:
      getMeter in interface io.opentelemetry.api.OpenTelemetry
    • meterBuilder

      public io.opentelemetry.api.metrics.MeterBuilder meterBuilder(String instrumentationScopeName)
      Specified by:
      meterBuilder in interface io.opentelemetry.api.OpenTelemetry
    • getImplementation

      @Deprecated public io.opentelemetry.api.OpenTelemetry getImplementation()
      Deprecated.
      Specified by:
      getImplementation in interface ExtendedOpenTelemetry
    • getResource

      @NonNull public io.opentelemetry.sdk.resources.Resource getResource()
      Specified by:
      getResource in interface ExtendedOpenTelemetry
    • getConfig

      @NonNull public io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties getConfig()
      Specified by:
      getConfig in interface ExtendedOpenTelemetry
    • getLogsBridge

      public io.opentelemetry.api.logs.LoggerProvider getLogsBridge()
      Specified by:
      getLogsBridge in interface io.opentelemetry.api.OpenTelemetry
    • getPropagators

      public io.opentelemetry.context.propagation.ContextPropagators getPropagators()
      Specified by:
      getPropagators in interface io.opentelemetry.api.OpenTelemetry
    • postOpenTelemetrySdkConfiguration

      @OverridingMethodsMustInvokeSuper protected void postOpenTelemetrySdkConfiguration()