Class GlobalOpenTelemetry

java.lang.Object
io.opentelemetry.api.GlobalOpenTelemetry

public final class GlobalOpenTelemetry extends Object
A global singleton for the entrypoint to telemetry functionality for tracing, metrics and baggage.

If using the OpenTelemetry SDK, you may want to instantiate the OpenTelemetry to provide configuration, for example of Resource or Sampler. See OpenTelemetrySdk and OpenTelemetrySdk.builder for information on how to construct the SDK OpenTelemetry.

See Also:
  • Method Details

    • get

      public static OpenTelemetry get()
      Returns the registered global OpenTelemetry.
      Throws:
      IllegalStateException - if a provider has been specified by system property using the interface FQCN but the specified provider cannot be found.
    • set

      public static void set(OpenTelemetry openTelemetry)
      Sets the OpenTelemetry that should be the global instance. Future calls to get() will return the provided OpenTelemetry instance. This should be called once as early as possible in your application initialization logic, often in a static block in your main class. It should only be called once - an attempt to call it a second time will result in an error. If trying to set the global OpenTelemetry multiple times in tests, use resetForTest() between them.

      If you are using the OpenTelemetry SDK, you should generally use OpenTelemetrySdk.builder().buildAndRegisterGlobal() instead of calling this method directly.

    • getTracerProvider

      public static TracerProvider getTracerProvider()
      Returns the globally registered TracerProvider.
    • getTracer

      public static Tracer getTracer(String instrumentationName)
      Gets or creates a named tracer instance from the globally registered TracerProvider.

      This is a shortcut method for getTracerProvider().get(instrumentationName)

      Parameters:
      instrumentationName - The name of the instrumentation library, not the name of the instrument*ed* library (e.g., "io.opentelemetry.contrib.mongodb"). Must not be null.
      Returns:
      a tracer instance.
    • getTracer

      public static Tracer getTracer(String instrumentationName, String instrumentationVersion)
      Gets or creates a named and versioned tracer instance from the globally registered TracerProvider.

      This is a shortcut method for getTracerProvider().get(instrumentationName, instrumentationVersion)

      Parameters:
      instrumentationName - The name of the instrumentation library, not the name of the instrument*ed* library (e.g., "io.opentelemetry.contrib.mongodb"). Must not be null.
      instrumentationVersion - The version of the instrumentation library (e.g., "1.0.0").
      Returns:
      a tracer instance.
    • tracerBuilder

      public static TracerBuilder tracerBuilder(String instrumentationName)
      Creates a TracerBuilder for a named Tracer instance.

      This is a shortcut method for get().tracerBuilder(instrumentationName)

      Parameters:
      instrumentationName - The name of the instrumentation library, not the name of the instrument*ed* library.
      Returns:
      a TracerBuilder instance.
      Since:
      1.4.0
    • resetForTest

      public static void resetForTest()
      Unsets the global OpenTelemetry. This is only meant to be used from tests which need to reconfigure OpenTelemetry.
    • getPropagators

      public static io.opentelemetry.context.propagation.ContextPropagators getPropagators()
      Returns the globally registered ContextPropagators for remote propagation of a context.