Split global functionality into a separate class (#2233)
This ensure clear separation of functionality. This PR does not change any functionality, it just restructures the code to separate global functionality from the Default implementation. Also helps to ensure that Global initialization does not happen by mistake when working only with the default implementation. Also it helps with methods like `OpenTelemetry.get()` and `OpenTelemetry.set()` to understand they are interacting with global instance Signed-off-by: Bogdan Drutu <bogdandrutu@gmail.com>
This commit is contained in:
parent
44186bc110
commit
25bf879df7
|
@ -8,9 +8,6 @@ package io.opentelemetry.api;
|
||||||
import io.opentelemetry.api.metrics.MeterProvider;
|
import io.opentelemetry.api.metrics.MeterProvider;
|
||||||
import io.opentelemetry.api.trace.TracerProvider;
|
import io.opentelemetry.api.trace.TracerProvider;
|
||||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||||
import io.opentelemetry.spi.OpenTelemetryFactory;
|
|
||||||
import java.util.ServiceLoader;
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import javax.annotation.concurrent.ThreadSafe;
|
import javax.annotation.concurrent.ThreadSafe;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -19,32 +16,6 @@ import javax.annotation.concurrent.ThreadSafe;
|
||||||
*/
|
*/
|
||||||
@ThreadSafe
|
@ThreadSafe
|
||||||
public class DefaultOpenTelemetry implements OpenTelemetry {
|
public class DefaultOpenTelemetry implements OpenTelemetry {
|
||||||
private static final Object mutex = new Object();
|
|
||||||
@Nullable private static volatile OpenTelemetry globalOpenTelemetry;
|
|
||||||
|
|
||||||
private final TracerProvider tracerProvider;
|
|
||||||
private final MeterProvider meterProvider;
|
|
||||||
private volatile ContextPropagators propagators;
|
|
||||||
|
|
||||||
static OpenTelemetry getGlobalOpenTelemetry() {
|
|
||||||
if (globalOpenTelemetry == null) {
|
|
||||||
synchronized (mutex) {
|
|
||||||
if (globalOpenTelemetry == null) {
|
|
||||||
OpenTelemetryFactory openTelemetryFactory = loadSpi(OpenTelemetryFactory.class);
|
|
||||||
if (openTelemetryFactory != null) {
|
|
||||||
globalOpenTelemetry = openTelemetryFactory.create();
|
|
||||||
} else {
|
|
||||||
globalOpenTelemetry = builder().build();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return globalOpenTelemetry;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void setGlobalOpenTelemetry(OpenTelemetry openTelemetry) {
|
|
||||||
globalOpenTelemetry = openTelemetry;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a builder for the {@link DefaultOpenTelemetry}.
|
* Returns a builder for the {@link DefaultOpenTelemetry}.
|
||||||
|
@ -55,6 +26,11 @@ public class DefaultOpenTelemetry implements OpenTelemetry {
|
||||||
return new DefaultOpenTelemetryBuilder();
|
return new DefaultOpenTelemetryBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private final TracerProvider tracerProvider;
|
||||||
|
private final MeterProvider meterProvider;
|
||||||
|
|
||||||
|
private volatile ContextPropagators propagators;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setPropagators(ContextPropagators propagators) {
|
public void setPropagators(ContextPropagators propagators) {
|
||||||
this.propagators = propagators;
|
this.propagators = propagators;
|
||||||
|
@ -81,34 +57,4 @@ public class DefaultOpenTelemetry implements OpenTelemetry {
|
||||||
this.meterProvider = meterProvider;
|
this.meterProvider = meterProvider;
|
||||||
this.propagators = propagators;
|
this.propagators = propagators;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Load provider class via {@link ServiceLoader}. A specific provider class can be requested via
|
|
||||||
* setting a system property with FQCN.
|
|
||||||
*
|
|
||||||
* @param providerClass a provider class
|
|
||||||
* @param <T> provider type
|
|
||||||
* @return a provider or null if not found
|
|
||||||
* @throws IllegalStateException if a specified provider is not found
|
|
||||||
*/
|
|
||||||
@Nullable
|
|
||||||
static <T> T loadSpi(Class<T> providerClass) {
|
|
||||||
String specifiedProvider = System.getProperty(providerClass.getName());
|
|
||||||
ServiceLoader<T> providers = ServiceLoader.load(providerClass);
|
|
||||||
for (T provider : providers) {
|
|
||||||
if (specifiedProvider == null || specifiedProvider.equals(provider.getClass().getName())) {
|
|
||||||
return provider;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (specifiedProvider != null) {
|
|
||||||
throw new IllegalStateException(
|
|
||||||
String.format("Service provider %s not found", specifiedProvider));
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// for testing
|
|
||||||
static void reset() {
|
|
||||||
globalOpenTelemetry = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,8 +47,7 @@ public class DefaultOpenTelemetryBuilder
|
||||||
public OpenTelemetry build() {
|
public OpenTelemetry build() {
|
||||||
MeterProvider meterProvider = this.meterProvider;
|
MeterProvider meterProvider = this.meterProvider;
|
||||||
if (meterProvider == null) {
|
if (meterProvider == null) {
|
||||||
MeterProviderFactory meterProviderFactory =
|
MeterProviderFactory meterProviderFactory = Utils.loadSpi(MeterProviderFactory.class);
|
||||||
DefaultOpenTelemetry.loadSpi(MeterProviderFactory.class);
|
|
||||||
if (meterProviderFactory != null) {
|
if (meterProviderFactory != null) {
|
||||||
meterProvider = meterProviderFactory.create();
|
meterProvider = meterProviderFactory.create();
|
||||||
} else {
|
} else {
|
||||||
|
@ -58,8 +57,7 @@ public class DefaultOpenTelemetryBuilder
|
||||||
|
|
||||||
TracerProvider tracerProvider = this.tracerProvider;
|
TracerProvider tracerProvider = this.tracerProvider;
|
||||||
if (tracerProvider == null) {
|
if (tracerProvider == null) {
|
||||||
TracerProviderFactory tracerProviderFactory =
|
TracerProviderFactory tracerProviderFactory = Utils.loadSpi(TracerProviderFactory.class);
|
||||||
DefaultOpenTelemetry.loadSpi(TracerProviderFactory.class);
|
|
||||||
if (tracerProviderFactory != null) {
|
if (tracerProviderFactory != null) {
|
||||||
tracerProvider = tracerProviderFactory.create();
|
tracerProvider = tracerProviderFactory.create();
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -0,0 +1,166 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.api;
|
||||||
|
|
||||||
|
import static java.util.Objects.requireNonNull;
|
||||||
|
|
||||||
|
import io.opentelemetry.api.metrics.Meter;
|
||||||
|
import io.opentelemetry.api.metrics.MeterProvider;
|
||||||
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
|
import io.opentelemetry.api.trace.TracerProvider;
|
||||||
|
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||||
|
import io.opentelemetry.spi.OpenTelemetryFactory;
|
||||||
|
import io.opentelemetry.spi.metrics.MeterProviderFactory;
|
||||||
|
import io.opentelemetry.spi.trace.TracerProviderFactory;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A global singleton for the entrypoint to telemetry functionality for tracing, metrics and
|
||||||
|
* baggage.
|
||||||
|
*
|
||||||
|
* <p>The global singleton can be retrieved by {@link #get()}. The default for the returned {@link
|
||||||
|
* OpenTelemetry}, if none has been set via {@link #set(OpenTelemetry)}, will be created with any
|
||||||
|
* {@link OpenTelemetryFactory}, {@link TracerProviderFactory} or {@link MeterProviderFactory} found
|
||||||
|
* on the classpath, or otherwise will be default, with no-op behavior.
|
||||||
|
*
|
||||||
|
* <p>If using the OpenTelemetry SDK, you may want to instantiate the {@link OpenTelemetry} to
|
||||||
|
* provide configuration, for example of {@code Resource} or {@code Sampler}. See {@code
|
||||||
|
* OpenTelemetrySdk} and {@code OpenTelemetrySdk.builder} for information on how to construct the
|
||||||
|
* SDK {@link OpenTelemetry}.
|
||||||
|
*
|
||||||
|
* @see TracerProvider
|
||||||
|
* @see MeterProvider
|
||||||
|
* @see ContextPropagators
|
||||||
|
*/
|
||||||
|
public final class GlobalOpenTelemetry {
|
||||||
|
private static final Object mutex = new Object();
|
||||||
|
@Nullable private static volatile OpenTelemetry globalOpenTelemetry;
|
||||||
|
|
||||||
|
private GlobalOpenTelemetry() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the registered global {@link OpenTelemetry}. If no call to {@link #set(OpenTelemetry)}
|
||||||
|
* has been made so far, a default {@link OpenTelemetry} composed of functionality any {@link
|
||||||
|
* OpenTelemetryFactory}, {@link TracerProviderFactory} or{@link MeterProviderFactory}, found on
|
||||||
|
* the classpath, or otherwise will be default, with no-op behavior.
|
||||||
|
*
|
||||||
|
* @throws IllegalStateException if a provider has been specified by system property using the
|
||||||
|
* interface FQCN but the specified provider cannot be found.
|
||||||
|
*/
|
||||||
|
public static OpenTelemetry get() {
|
||||||
|
if (globalOpenTelemetry == null) {
|
||||||
|
synchronized (mutex) {
|
||||||
|
if (globalOpenTelemetry == null) {
|
||||||
|
OpenTelemetryFactory openTelemetryFactory = Utils.loadSpi(OpenTelemetryFactory.class);
|
||||||
|
if (openTelemetryFactory != null) {
|
||||||
|
set(openTelemetryFactory.create());
|
||||||
|
} else {
|
||||||
|
set(DefaultOpenTelemetry.builder().build());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return globalOpenTelemetry;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the {@link OpenTelemetry} that should be the global instance. Future calls to {@link
|
||||||
|
* #get()} will return the provided {@link OpenTelemetry} instance. This should be called once as
|
||||||
|
* early as possible in your application initialization logic, often in a {@code static} block in
|
||||||
|
* your main class.
|
||||||
|
*/
|
||||||
|
public static void set(OpenTelemetry openTelemetry) {
|
||||||
|
globalOpenTelemetry = openTelemetry;
|
||||||
|
}
|
||||||
|
|
||||||
|
// for testing
|
||||||
|
static void reset() {
|
||||||
|
globalOpenTelemetry = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns the globally registered {@link TracerProvider}. */
|
||||||
|
public static TracerProvider getTracerProvider() {
|
||||||
|
return get().getTracerProvider();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets or creates a named tracer instance from the globally registered {@link TracerProvider}.
|
||||||
|
*
|
||||||
|
* <p>This is a shortcut method for {@code getTracerProvider().get(instrumentationName)}
|
||||||
|
*
|
||||||
|
* @param 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.
|
||||||
|
* @return a tracer instance.
|
||||||
|
*/
|
||||||
|
public static Tracer getTracer(String instrumentationName) {
|
||||||
|
return get().getTracer(instrumentationName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets or creates a named and versioned tracer instance from the globally registered {@link
|
||||||
|
* TracerProvider}.
|
||||||
|
*
|
||||||
|
* <p>This is a shortcut method for {@code getTracerProvider().get(instrumentationName,
|
||||||
|
* instrumentationVersion)}
|
||||||
|
*
|
||||||
|
* @param 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.
|
||||||
|
* @param instrumentationVersion The version of the instrumentation library (e.g., "1.0.0").
|
||||||
|
* @return a tracer instance.
|
||||||
|
*/
|
||||||
|
public static Tracer getTracer(String instrumentationName, String instrumentationVersion) {
|
||||||
|
return get().getTracer(instrumentationName, instrumentationVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
/** Returns the globally registered {@link MeterProvider}. */
|
||||||
|
public static MeterProvider getMeterProvider() {
|
||||||
|
return get().getMeterProvider();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets or creates a named meter instance from the globally registered {@link MeterProvider}.
|
||||||
|
*
|
||||||
|
* <p>This is a shortcut method for {@code getMeterProvider().get(instrumentationName)}
|
||||||
|
*
|
||||||
|
* @param instrumentationName The name of the instrumentation library, not the name of the
|
||||||
|
* instrument*ed* library.
|
||||||
|
* @return a tracer instance.
|
||||||
|
*/
|
||||||
|
public static Meter getMeter(String instrumentationName) {
|
||||||
|
return get().getMeter(instrumentationName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets or creates a named and versioned meter instance from the globally registered {@link
|
||||||
|
* MeterProvider}.
|
||||||
|
*
|
||||||
|
* <p>This is a shortcut method for {@code getMeterProvider().get(instrumentationName,
|
||||||
|
* instrumentationVersion)}
|
||||||
|
*
|
||||||
|
* @param instrumentationName The name of the instrumentation library, not the name of the
|
||||||
|
* instrument*ed* library.
|
||||||
|
* @param instrumentationVersion The version of the instrumentation library.
|
||||||
|
* @return a tracer instance.
|
||||||
|
*/
|
||||||
|
public static Meter getMeter(String instrumentationName, String instrumentationVersion) {
|
||||||
|
return get().getMeter(instrumentationName, instrumentationVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the globally registered {@link ContextPropagators} for remote propagation of a context.
|
||||||
|
*/
|
||||||
|
public static ContextPropagators getPropagators() {
|
||||||
|
return get().getPropagators();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the globally registered {@link ContextPropagators} for remote propagation of a context.
|
||||||
|
*/
|
||||||
|
public static void setPropagators(ContextPropagators propagators) {
|
||||||
|
requireNonNull(propagators, "propagators");
|
||||||
|
get().setPropagators(propagators);
|
||||||
|
}
|
||||||
|
}
|
|
@ -36,108 +36,103 @@ import io.opentelemetry.spi.trace.TracerProviderFactory;
|
||||||
public interface OpenTelemetry {
|
public interface OpenTelemetry {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the registered global {@link OpenTelemetry}. If no call to {@link #set(OpenTelemetry)}
|
* Returns the registered global {@link OpenTelemetry}.
|
||||||
* has been made so far, a default {@link OpenTelemetry} composed of functionality any {@link
|
|
||||||
* OpenTelemetryFactory}, {@link TracerProviderFactory} or{@link MeterProviderFactory}, found on
|
|
||||||
* the classpath, or otherwise will be default, with no-op behavior.
|
|
||||||
*
|
*
|
||||||
* @throws IllegalStateException if a provider has been specified by system property using the
|
* @deprecated use {@link GlobalOpenTelemetry#get()}
|
||||||
* interface FQCN but the specified provider cannot be found.
|
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
static OpenTelemetry get() {
|
static OpenTelemetry get() {
|
||||||
return DefaultOpenTelemetry.getGlobalOpenTelemetry();
|
return GlobalOpenTelemetry.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the {@link OpenTelemetry} that should be the global instance. Future calls to {@link
|
* Sets the {@link OpenTelemetry} that should be the global instance.
|
||||||
* #get()} will return the provided {@link OpenTelemetry} instance. This should be called once as
|
*
|
||||||
* early as possible in your application initialization logic, often in a {@code static} block in
|
* @deprecated use {@link GlobalOpenTelemetry#set(OpenTelemetry)}
|
||||||
* your main class.
|
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
static void set(OpenTelemetry openTelemetry) {
|
static void set(OpenTelemetry openTelemetry) {
|
||||||
DefaultOpenTelemetry.setGlobalOpenTelemetry(openTelemetry);
|
GlobalOpenTelemetry.set(openTelemetry);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns the globally registered {@link TracerProvider}. */
|
/**
|
||||||
|
* Returns the globally registered {@link TracerProvider}.
|
||||||
|
*
|
||||||
|
* @deprecated use {@link GlobalOpenTelemetry#getTracerProvider()}
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
static TracerProvider getGlobalTracerProvider() {
|
static TracerProvider getGlobalTracerProvider() {
|
||||||
return DefaultOpenTelemetry.getGlobalOpenTelemetry().getTracerProvider();
|
return get().getTracerProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or creates a named tracer instance from the globally registered {@link TracerProvider}.
|
* Gets or creates a named tracer instance from the globally registered {@link TracerProvider}.
|
||||||
*
|
*
|
||||||
* <p>This is a shortcut method for {@code getGlobalTracerProvider().get(instrumentationName)}
|
* @deprecated use {@link GlobalOpenTelemetry#getTracer(String)}
|
||||||
*
|
|
||||||
* @param 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.
|
|
||||||
* @return a tracer instance.
|
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
static Tracer getGlobalTracer(String instrumentationName) {
|
static Tracer getGlobalTracer(String instrumentationName) {
|
||||||
return DefaultOpenTelemetry.getGlobalOpenTelemetry().getTracer(instrumentationName);
|
return get().getTracer(instrumentationName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or creates a named and versioned tracer instance from the globally registered {@link
|
* Gets or creates a named and versioned tracer instance from the globally registered {@link
|
||||||
* TracerProvider}.
|
* TracerProvider}.
|
||||||
*
|
*
|
||||||
* <p>This is a shortcut method for {@code getGlobalTracerProvider().get(instrumentationName,
|
* @deprecated use {@link GlobalOpenTelemetry#getTracer(String, String)}
|
||||||
* instrumentationVersion)}
|
|
||||||
*
|
|
||||||
* @param 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.
|
|
||||||
* @param instrumentationVersion The version of the instrumentation library (e.g., "1.0.0").
|
|
||||||
* @return a tracer instance.
|
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
static Tracer getGlobalTracer(String instrumentationName, String instrumentationVersion) {
|
static Tracer getGlobalTracer(String instrumentationName, String instrumentationVersion) {
|
||||||
return DefaultOpenTelemetry.getGlobalOpenTelemetry()
|
return get().getTracer(instrumentationName, instrumentationVersion);
|
||||||
.getTracer(instrumentationName, instrumentationVersion);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns the globally registered {@link MeterProvider}. */
|
/**
|
||||||
|
* Returns the globally registered {@link MeterProvider}.
|
||||||
|
*
|
||||||
|
* @deprecated use {@link GlobalOpenTelemetry#getMeterProvider()}
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
static MeterProvider getGlobalMeterProvider() {
|
static MeterProvider getGlobalMeterProvider() {
|
||||||
return DefaultOpenTelemetry.getGlobalOpenTelemetry().getMeterProvider();
|
return get().getMeterProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or creates a named meter instance from the globally registered {@link MeterProvider}.
|
* Gets or creates a named meter instance from the globally registered {@link MeterProvider}.
|
||||||
*
|
*
|
||||||
* <p>This is a shortcut method for {@code getGlobalMeterProvider().get(instrumentationName)}
|
* @deprecated use {@link GlobalOpenTelemetry#getMeter(String)}
|
||||||
*
|
|
||||||
* @param instrumentationName The name of the instrumentation library, not the name of the
|
|
||||||
* instrument*ed* library.
|
|
||||||
* @return a tracer instance.
|
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
static Meter getGlobalMeter(String instrumentationName) {
|
static Meter getGlobalMeter(String instrumentationName) {
|
||||||
return DefaultOpenTelemetry.getGlobalOpenTelemetry().getMeter(instrumentationName);
|
return get().getMeter(instrumentationName);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets or creates a named and versioned meter instance from the globally registered {@link
|
* Gets or creates a named and versioned meter instance from the globally registered {@link
|
||||||
* MeterProvider}.
|
* MeterProvider}.
|
||||||
*
|
*
|
||||||
* <p>This is a shortcut method for {@code getGlobalMeterProvider().get(instrumentationName,
|
* @deprecated use {@link GlobalOpenTelemetry#getMeter(String, String)}
|
||||||
* instrumentationVersion)}
|
|
||||||
*
|
|
||||||
* @param instrumentationName The name of the instrumentation library, not the name of the
|
|
||||||
* instrument*ed* library.
|
|
||||||
* @param instrumentationVersion The version of the instrumentation library.
|
|
||||||
* @return a tracer instance.
|
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
static Meter getGlobalMeter(String instrumentationName, String instrumentationVersion) {
|
static Meter getGlobalMeter(String instrumentationName, String instrumentationVersion) {
|
||||||
return DefaultOpenTelemetry.getGlobalOpenTelemetry()
|
return get().getMeter(instrumentationName, instrumentationVersion);
|
||||||
.getMeter(instrumentationName, instrumentationVersion);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the globally registered {@link ContextPropagators} for remote propagation of a context.
|
* Returns the globally registered {@link ContextPropagators} for remote propagation of a context.
|
||||||
|
*
|
||||||
|
* @deprecated use {@link GlobalOpenTelemetry#getPropagators()}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
static ContextPropagators getGlobalPropagators() {
|
static ContextPropagators getGlobalPropagators() {
|
||||||
return DefaultOpenTelemetry.getGlobalOpenTelemetry().getPropagators();
|
return get().getPropagators();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the globally registered {@link ContextPropagators} for remote propagation of a context.
|
* Sets the globally registered {@link ContextPropagators} for remote propagation of a context.
|
||||||
|
*
|
||||||
|
* @deprecated use {@link GlobalOpenTelemetry#setPropagators(ContextPropagators)}
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
static void setGlobalPropagators(ContextPropagators propagators) {
|
static void setGlobalPropagators(ContextPropagators propagators) {
|
||||||
requireNonNull(propagators, "propagators");
|
requireNonNull(propagators, "propagators");
|
||||||
get().setPropagators(propagators);
|
get().setPropagators(propagators);
|
||||||
|
|
|
@ -0,0 +1,38 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
package io.opentelemetry.api;
|
||||||
|
|
||||||
|
import java.util.ServiceLoader;
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
final class Utils {
|
||||||
|
private Utils() {}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Load provider class via {@link ServiceLoader}. A specific provider class can be requested via
|
||||||
|
* setting a system property with FQCN.
|
||||||
|
*
|
||||||
|
* @param providerClass a provider class
|
||||||
|
* @param <T> provider type
|
||||||
|
* @return a provider or null if not found
|
||||||
|
* @throws IllegalStateException if a specified provider is not found
|
||||||
|
*/
|
||||||
|
@Nullable
|
||||||
|
static <T> T loadSpi(Class<T> providerClass) {
|
||||||
|
String specifiedProvider = System.getProperty(providerClass.getName());
|
||||||
|
ServiceLoader<T> providers = ServiceLoader.load(providerClass);
|
||||||
|
for (T provider : providers) {
|
||||||
|
if (specifiedProvider == null || specifiedProvider.equals(provider.getClass().getName())) {
|
||||||
|
return provider;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (specifiedProvider != null) {
|
||||||
|
throw new IllegalStateException(
|
||||||
|
String.format("Service provider %s not found", specifiedProvider));
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
|
@ -45,27 +45,27 @@ class OpenTelemetryTest {
|
||||||
|
|
||||||
@BeforeAll
|
@BeforeAll
|
||||||
static void beforeClass() {
|
static void beforeClass() {
|
||||||
DefaultOpenTelemetry.reset();
|
GlobalOpenTelemetry.reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
void after() {
|
void after() {
|
||||||
DefaultOpenTelemetry.reset();
|
GlobalOpenTelemetry.reset();
|
||||||
System.clearProperty(TracerProviderFactory.class.getName());
|
System.clearProperty(TracerProviderFactory.class.getName());
|
||||||
System.clearProperty(MeterProviderFactory.class.getName());
|
System.clearProperty(MeterProviderFactory.class.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testDefault() {
|
void testDefault() {
|
||||||
assertThat(OpenTelemetry.getGlobalTracerProvider().getClass().getSimpleName())
|
assertThat(GlobalOpenTelemetry.getTracerProvider().getClass().getSimpleName())
|
||||||
.isEqualTo("DefaultTracerProvider");
|
.isEqualTo("DefaultTracerProvider");
|
||||||
assertThat(OpenTelemetry.getGlobalTracerProvider())
|
assertThat(GlobalOpenTelemetry.getTracerProvider())
|
||||||
.isSameAs(OpenTelemetry.getGlobalTracerProvider());
|
.isSameAs(GlobalOpenTelemetry.getTracerProvider());
|
||||||
assertThat(OpenTelemetry.getGlobalMeterProvider().getClass().getSimpleName())
|
assertThat(GlobalOpenTelemetry.getMeterProvider().getClass().getSimpleName())
|
||||||
.isEqualTo("DefaultMeterProvider");
|
.isEqualTo("DefaultMeterProvider");
|
||||||
assertThat(OpenTelemetry.getGlobalMeterProvider())
|
assertThat(GlobalOpenTelemetry.getMeterProvider())
|
||||||
.isSameAs(OpenTelemetry.getGlobalMeterProvider());
|
.isSameAs(GlobalOpenTelemetry.getMeterProvider());
|
||||||
assertThat(OpenTelemetry.getGlobalPropagators()).isSameAs(OpenTelemetry.getGlobalPropagators());
|
assertThat(GlobalOpenTelemetry.getPropagators()).isSameAs(GlobalOpenTelemetry.getPropagators());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -95,9 +95,9 @@ class OpenTelemetryTest {
|
||||||
SecondTracerProviderFactory.class);
|
SecondTracerProviderFactory.class);
|
||||||
try {
|
try {
|
||||||
assertThat(
|
assertThat(
|
||||||
(OpenTelemetry.getGlobalTracerProvider().get("")
|
(GlobalOpenTelemetry.getTracerProvider().get("")
|
||||||
instanceof FirstTracerProviderFactory)
|
instanceof FirstTracerProviderFactory)
|
||||||
|| (OpenTelemetry.getGlobalTracerProvider().get("")
|
|| (GlobalOpenTelemetry.getTracerProvider().get("")
|
||||||
instanceof SecondTracerProviderFactory))
|
instanceof SecondTracerProviderFactory))
|
||||||
.isTrue();
|
.isTrue();
|
||||||
} finally {
|
} finally {
|
||||||
|
@ -115,7 +115,7 @@ class OpenTelemetryTest {
|
||||||
System.setProperty(
|
System.setProperty(
|
||||||
TracerProviderFactory.class.getName(), SecondTracerProviderFactory.class.getName());
|
TracerProviderFactory.class.getName(), SecondTracerProviderFactory.class.getName());
|
||||||
try {
|
try {
|
||||||
assertThat(OpenTelemetry.getGlobalTracerProvider().get(""))
|
assertThat(GlobalOpenTelemetry.getTracerProvider().get(""))
|
||||||
.isInstanceOf(SecondTracerProviderFactory.class);
|
.isInstanceOf(SecondTracerProviderFactory.class);
|
||||||
} finally {
|
} finally {
|
||||||
assertThat(serviceFile.delete()).isTrue();
|
assertThat(serviceFile.delete()).isTrue();
|
||||||
|
@ -125,7 +125,7 @@ class OpenTelemetryTest {
|
||||||
@Test
|
@Test
|
||||||
void testTracerNotFound() {
|
void testTracerNotFound() {
|
||||||
System.setProperty(TracerProviderFactory.class.getName(), "io.does.not.exists");
|
System.setProperty(TracerProviderFactory.class.getName(), "io.does.not.exists");
|
||||||
assertThrows(IllegalStateException.class, () -> OpenTelemetry.getGlobalTracer("testTracer"));
|
assertThrows(IllegalStateException.class, () -> GlobalOpenTelemetry.getTracer("testTracer"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -137,11 +137,11 @@ class OpenTelemetryTest {
|
||||||
SecondMeterProviderFactory.class);
|
SecondMeterProviderFactory.class);
|
||||||
try {
|
try {
|
||||||
assertThat(
|
assertThat(
|
||||||
(OpenTelemetry.getGlobalMeterProvider() instanceof FirstMeterProviderFactory)
|
(GlobalOpenTelemetry.getMeterProvider() instanceof FirstMeterProviderFactory)
|
||||||
|| (OpenTelemetry.getGlobalMeterProvider() instanceof SecondMeterProviderFactory))
|
|| (GlobalOpenTelemetry.getMeterProvider() instanceof SecondMeterProviderFactory))
|
||||||
.isTrue();
|
.isTrue();
|
||||||
assertThat(OpenTelemetry.getGlobalMeterProvider())
|
assertThat(GlobalOpenTelemetry.getMeterProvider())
|
||||||
.isEqualTo(OpenTelemetry.getGlobalMeterProvider());
|
.isEqualTo(GlobalOpenTelemetry.getMeterProvider());
|
||||||
} finally {
|
} finally {
|
||||||
assertThat(serviceFile.delete()).isTrue();
|
assertThat(serviceFile.delete()).isTrue();
|
||||||
}
|
}
|
||||||
|
@ -157,10 +157,10 @@ class OpenTelemetryTest {
|
||||||
System.setProperty(
|
System.setProperty(
|
||||||
MeterProviderFactory.class.getName(), SecondMeterProviderFactory.class.getName());
|
MeterProviderFactory.class.getName(), SecondMeterProviderFactory.class.getName());
|
||||||
try {
|
try {
|
||||||
assertThat(OpenTelemetry.getGlobalMeterProvider())
|
assertThat(GlobalOpenTelemetry.getMeterProvider())
|
||||||
.isInstanceOf(SecondMeterProviderFactory.class);
|
.isInstanceOf(SecondMeterProviderFactory.class);
|
||||||
assertThat(OpenTelemetry.getGlobalMeterProvider())
|
assertThat(GlobalOpenTelemetry.getMeterProvider())
|
||||||
.isEqualTo(OpenTelemetry.getGlobalMeterProvider());
|
.isEqualTo(GlobalOpenTelemetry.getMeterProvider());
|
||||||
} finally {
|
} finally {
|
||||||
assertThat(serviceFile.delete()).isTrue();
|
assertThat(serviceFile.delete()).isTrue();
|
||||||
}
|
}
|
||||||
|
@ -169,14 +169,14 @@ class OpenTelemetryTest {
|
||||||
@Test
|
@Test
|
||||||
void testMeterNotFound() {
|
void testMeterNotFound() {
|
||||||
System.setProperty(MeterProviderFactory.class.getName(), "io.does.not.exists");
|
System.setProperty(MeterProviderFactory.class.getName(), "io.does.not.exists");
|
||||||
assertThrows(IllegalStateException.class, OpenTelemetry::getGlobalMeterProvider);
|
assertThrows(IllegalStateException.class, GlobalOpenTelemetry::getMeterProvider);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGlobalPropagatorsSet() {
|
void testGlobalPropagatorsSet() {
|
||||||
ContextPropagators propagators = ContextPropagators.noop();
|
ContextPropagators propagators = ContextPropagators.noop();
|
||||||
OpenTelemetry.setGlobalPropagators(propagators);
|
GlobalOpenTelemetry.setPropagators(propagators);
|
||||||
assertThat(OpenTelemetry.getGlobalPropagators()).isEqualTo(propagators);
|
assertThat(GlobalOpenTelemetry.getPropagators()).isEqualTo(propagators);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -238,7 +238,7 @@ class OpenTelemetryTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testPropagatorsSetNull() {
|
void testPropagatorsSetNull() {
|
||||||
assertThrows(NullPointerException.class, () -> OpenTelemetry.setGlobalPropagators(null));
|
assertThrows(NullPointerException.class, () -> GlobalOpenTelemetry.setPropagators(null));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static File createService(Class<?> service, Class<?>... impls) throws IOException {
|
private static File createService(Class<?> service, Class<?>... impls) throws IOException {
|
||||||
|
|
|
@ -7,7 +7,7 @@ package io.opentelemetry.exporter.jaeger.thrift;
|
||||||
|
|
||||||
import com.fasterxml.jackson.databind.JsonNode;
|
import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||||
|
@ -36,7 +36,7 @@ class JaegerThriftIntegrationTest {
|
||||||
private static final String JAEGER_VERSION = "1.17";
|
private static final String JAEGER_VERSION = "1.17";
|
||||||
private static final String SERVICE_NAME = "E2E-test";
|
private static final String SERVICE_NAME = "E2E-test";
|
||||||
private static final String JAEGER_URL = "http://localhost";
|
private static final String JAEGER_URL = "http://localhost";
|
||||||
private final Tracer tracer = OpenTelemetry.getGlobalTracer(getClass().getCanonicalName());
|
private final Tracer tracer = GlobalOpenTelemetry.getTracer(getClass().getCanonicalName());
|
||||||
|
|
||||||
@Container
|
@Container
|
||||||
public static GenericContainer<?> jaegerContainer =
|
public static GenericContainer<?> jaegerContainer =
|
||||||
|
|
|
@ -9,7 +9,7 @@ import com.fasterxml.jackson.databind.JsonNode;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
import io.grpc.ManagedChannel;
|
import io.grpc.ManagedChannel;
|
||||||
import io.grpc.ManagedChannelBuilder;
|
import io.grpc.ManagedChannelBuilder;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||||
|
@ -36,7 +36,7 @@ class JaegerIntegrationTest {
|
||||||
private static final int COLLECTOR_PORT = 14250;
|
private static final int COLLECTOR_PORT = 14250;
|
||||||
private static final String SERVICE_NAME = "E2E-test";
|
private static final String SERVICE_NAME = "E2E-test";
|
||||||
private static final String JAEGER_URL = "http://localhost";
|
private static final String JAEGER_URL = "http://localhost";
|
||||||
private final Tracer tracer = OpenTelemetry.getGlobalTracer(getClass().getCanonicalName());
|
private final Tracer tracer = GlobalOpenTelemetry.getTracer(getClass().getCanonicalName());
|
||||||
|
|
||||||
@Container
|
@Container
|
||||||
public static GenericContainer<?> jaegerContainer =
|
public static GenericContainer<?> jaegerContainer =
|
||||||
|
|
|
@ -10,7 +10,7 @@ import com.google.common.util.concurrent.Futures;
|
||||||
import com.google.common.util.concurrent.MoreExecutors;
|
import com.google.common.util.concurrent.MoreExecutors;
|
||||||
import io.grpc.ConnectivityState;
|
import io.grpc.ConnectivityState;
|
||||||
import io.grpc.ManagedChannel;
|
import io.grpc.ManagedChannel;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.common.Labels;
|
import io.opentelemetry.api.common.Labels;
|
||||||
import io.opentelemetry.api.metrics.LongCounter;
|
import io.opentelemetry.api.metrics.LongCounter;
|
||||||
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;
|
import io.opentelemetry.proto.collector.trace.v1.ExportTraceServiceRequest;
|
||||||
|
@ -78,12 +78,12 @@ public final class OtlpGrpcSpanExporter implements SpanExporter {
|
||||||
private final long deadlineMs;
|
private final long deadlineMs;
|
||||||
|
|
||||||
private final LongCounter spansSeen =
|
private final LongCounter spansSeen =
|
||||||
OpenTelemetry.getGlobalMeter("io.opentelemetry.exporters.otlp")
|
GlobalOpenTelemetry.getMeter("io.opentelemetry.exporters.otlp")
|
||||||
.longCounterBuilder("spansSeenByExporter")
|
.longCounterBuilder("spansSeenByExporter")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
private final LongCounter spansExported =
|
private final LongCounter spansExported =
|
||||||
OpenTelemetry.getGlobalMeter("io.opentelemetry.exporters.otlp")
|
GlobalOpenTelemetry.getMeter("io.opentelemetry.exporters.otlp")
|
||||||
.longCounterBuilder("spansExportedByExporter")
|
.longCounterBuilder("spansExportedByExporter")
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package io.opentelemetry.extension.kotlin
|
package io.opentelemetry.extension.kotlin
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry
|
import io.opentelemetry.api.GlobalOpenTelemetry
|
||||||
import io.opentelemetry.api.trace.Span
|
import io.opentelemetry.api.trace.Span
|
||||||
import io.opentelemetry.context.Context
|
import io.opentelemetry.context.Context
|
||||||
import io.opentelemetry.context.ContextKey
|
import io.opentelemetry.context.ContextKey
|
||||||
|
@ -37,7 +37,7 @@ class KotlinCoroutinesTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun runWithSpan() {
|
fun runWithSpan() {
|
||||||
val span = OpenTelemetry.getGlobalTracer("test").spanBuilder("test").startSpan()
|
val span = GlobalOpenTelemetry.getTracer("test").spanBuilder("test").startSpan()
|
||||||
assertThat(Span.current()).isEqualTo(Span.getInvalid())
|
assertThat(Span.current()).isEqualTo(Span.getInvalid())
|
||||||
runBlocking(Dispatchers.Default + span.asContextElement()) {
|
runBlocking(Dispatchers.Default + span.asContextElement()) {
|
||||||
assertThat(Span.current()).isEqualTo(span)
|
assertThat(Span.current()).isEqualTo(span)
|
||||||
|
|
|
@ -7,7 +7,7 @@ package io.opentelemetry;
|
||||||
|
|
||||||
import io.grpc.ManagedChannel;
|
import io.grpc.ManagedChannel;
|
||||||
import io.grpc.ManagedChannelBuilder;
|
import io.grpc.ManagedChannelBuilder;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter;
|
import io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter;
|
||||||
|
@ -20,7 +20,7 @@ public class SendTraceToJaeger {
|
||||||
private final int port; // = 14250;
|
private final int port; // = 14250;
|
||||||
|
|
||||||
// OTel API
|
// OTel API
|
||||||
private final Tracer tracer = OpenTelemetry.getGlobalTracer("io.opentelemetry.SendTraceToJaeger");
|
private final Tracer tracer = GlobalOpenTelemetry.getTracer("io.opentelemetry.SendTraceToJaeger");
|
||||||
|
|
||||||
public SendTraceToJaeger(String ip, int port) {
|
public SendTraceToJaeger(String ip, int port) {
|
||||||
this.ip = ip;
|
this.ip = ip;
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
package io.opentelemetry;
|
package io.opentelemetry;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
||||||
|
@ -33,9 +34,9 @@ public class Application {
|
||||||
private static final OpenTelemetry openTelemetry;
|
private static final OpenTelemetry openTelemetry;
|
||||||
|
|
||||||
static {
|
static {
|
||||||
OpenTelemetry.setGlobalPropagators(
|
GlobalOpenTelemetry.setPropagators(
|
||||||
ContextPropagators.create(W3CTraceContextPropagator.getInstance()));
|
ContextPropagators.create(W3CTraceContextPropagator.getInstance()));
|
||||||
openTelemetry = OpenTelemetry.get();
|
openTelemetry = GlobalOpenTelemetry.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
private Application() {}
|
private Application() {}
|
||||||
|
|
|
@ -18,7 +18,7 @@ import io.opencensus.trace.TraceOptions;
|
||||||
import io.opencensus.trace.Tracestate;
|
import io.opencensus.trace.Tracestate;
|
||||||
import io.opencensus.trace.export.SpanData;
|
import io.opencensus.trace.export.SpanData;
|
||||||
import io.opencensus.trace.export.SpanData.TimedEvent;
|
import io.opencensus.trace.export.SpanData.TimedEvent;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.common.AttributeKey;
|
import io.opentelemetry.api.common.AttributeKey;
|
||||||
import io.opentelemetry.api.common.Attributes;
|
import io.opentelemetry.api.common.Attributes;
|
||||||
import io.opentelemetry.api.common.AttributesBuilder;
|
import io.opentelemetry.api.common.AttributesBuilder;
|
||||||
|
@ -70,7 +70,7 @@ class SpanConverter {
|
||||||
"message.event.size.compressed";
|
"message.event.size.compressed";
|
||||||
|
|
||||||
private static final Tracer TRACER =
|
private static final Tracer TRACER =
|
||||||
OpenTelemetry.getGlobalTracer("io.opencensus.opentelemetry.migration");
|
GlobalOpenTelemetry.getTracer("io.opencensus.opentelemetry.migration");
|
||||||
|
|
||||||
private SpanConverter() {}
|
private SpanConverter() {}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import io.opencensus.trace.Tracing;
|
import io.opencensus.trace.Tracing;
|
||||||
import io.opencensus.trace.samplers.Samplers;
|
import io.opencensus.trace.samplers.Samplers;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.context.Context;
|
import io.opentelemetry.context.Context;
|
||||||
|
@ -51,7 +51,7 @@ class TraceInteroperabilityTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testParentChildRelationshipsAreExportedCorrectly() {
|
void testParentChildRelationshipsAreExportedCorrectly() {
|
||||||
Tracer tracer = OpenTelemetry.getGlobalTracer("io.opentelemetry.test.scoped.span.1");
|
Tracer tracer = GlobalOpenTelemetry.getTracer("io.opentelemetry.test.scoped.span.1");
|
||||||
Span span = tracer.spanBuilder("OpenTelemetrySpan").startSpan();
|
Span span = tracer.spanBuilder("OpenTelemetrySpan").startSpan();
|
||||||
try (Scope scope = Context.current().with(span).makeCurrent()) {
|
try (Scope scope = Context.current().with(span).makeCurrent()) {
|
||||||
span.addEvent("OpenTelemetry: Event 1");
|
span.addEvent("OpenTelemetry: Event 1");
|
||||||
|
@ -179,7 +179,7 @@ class TraceInteroperabilityTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void createOpenTelemetryScopedSpan() {
|
private static void createOpenTelemetryScopedSpan() {
|
||||||
Tracer tracer = OpenTelemetry.getGlobalTracer("io.opentelemetry.test.scoped.span.2");
|
Tracer tracer = GlobalOpenTelemetry.getTracer("io.opentelemetry.test.scoped.span.2");
|
||||||
Span span = tracer.spanBuilder("OpenTelemetrySpan2").startSpan();
|
Span span = tracer.spanBuilder("OpenTelemetrySpan2").startSpan();
|
||||||
try (Scope scope = Context.current().with(span).makeCurrent()) {
|
try (Scope scope = Context.current().with(span).makeCurrent()) {
|
||||||
span.addEvent("OpenTelemetry2: Event 1");
|
span.addEvent("OpenTelemetry2: Event 1");
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
package io.opentelemetry.opentracingshim;
|
package io.opentelemetry.opentracingshim;
|
||||||
|
|
||||||
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.api.trace.TracerProvider;
|
import io.opentelemetry.api.trace.TracerProvider;
|
||||||
|
@ -17,16 +18,16 @@ public final class OpenTracingShim {
|
||||||
private OpenTracingShim() {}
|
private OpenTracingShim() {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a {@code io.opentracing.Tracer} shim out of {@code
|
* Creates a {@code io.opentracing.Tracer} shim out of {@code OpenTelemetry.getTracerProvider()}
|
||||||
* OpenTelemetry.getGlobalTracerProvider()} and {@code OpenTelemetry.getGlobalPropagators()}.
|
* and {@code OpenTelemetry.getPropagators()}.
|
||||||
*
|
*
|
||||||
* @return a {@code io.opentracing.Tracer}.
|
* @return a {@code io.opentracing.Tracer}.
|
||||||
*/
|
*/
|
||||||
public static io.opentracing.Tracer createTracerShim() {
|
public static io.opentracing.Tracer createTracerShim() {
|
||||||
return new TracerShim(
|
return new TracerShim(
|
||||||
new TelemetryInfo(
|
new TelemetryInfo(
|
||||||
getTracer(OpenTelemetry.getGlobalTracerProvider()),
|
getTracer(GlobalOpenTelemetry.getTracerProvider()),
|
||||||
OpenTelemetry.getGlobalPropagators()));
|
GlobalOpenTelemetry.getPropagators()));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -9,6 +9,7 @@ import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||||
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
||||||
|
@ -19,7 +20,7 @@ class OpenTracingShimTest {
|
||||||
@Test
|
@Test
|
||||||
void createTracerShim_default() {
|
void createTracerShim_default() {
|
||||||
TracerShim tracerShim = (TracerShim) OpenTracingShim.createTracerShim();
|
TracerShim tracerShim = (TracerShim) OpenTracingShim.createTracerShim();
|
||||||
assertThat(tracerShim.tracer()).isEqualTo(OpenTelemetry.getGlobalTracer("opentracingshim"));
|
assertThat(tracerShim.tracer()).isEqualTo(GlobalOpenTelemetry.getTracer("opentracingshim"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -8,7 +8,7 @@ package io.opentelemetry.opentracingshim;
|
||||||
import static io.opentelemetry.opentracingshim.TestUtils.getBaggageMap;
|
import static io.opentelemetry.opentracingshim.TestUtils.getBaggageMap;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -18,7 +18,7 @@ class SpanBuilderShimTest {
|
||||||
private final SdkTracerProvider tracerSdkFactory = SdkTracerProvider.builder().build();
|
private final SdkTracerProvider tracerSdkFactory = SdkTracerProvider.builder().build();
|
||||||
private final Tracer tracer = tracerSdkFactory.get("SpanShimTest");
|
private final Tracer tracer = tracerSdkFactory.get("SpanShimTest");
|
||||||
private final TelemetryInfo telemetryInfo =
|
private final TelemetryInfo telemetryInfo =
|
||||||
new TelemetryInfo(tracer, OpenTelemetry.getGlobalPropagators());
|
new TelemetryInfo(tracer, GlobalOpenTelemetry.getPropagators());
|
||||||
|
|
||||||
private static final String SPAN_NAME = "Span";
|
private static final String SPAN_NAME = "Span";
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ package io.opentelemetry.opentracingshim;
|
||||||
import static io.opentelemetry.opentracingshim.TestUtils.getBaggageMap;
|
import static io.opentelemetry.opentracingshim.TestUtils.getBaggageMap;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
||||||
|
@ -22,7 +22,7 @@ class SpanShimTest {
|
||||||
private final SdkTracerProvider tracerSdkFactory = SdkTracerProvider.builder().build();
|
private final SdkTracerProvider tracerSdkFactory = SdkTracerProvider.builder().build();
|
||||||
private final Tracer tracer = tracerSdkFactory.get("SpanShimTest");
|
private final Tracer tracer = tracerSdkFactory.get("SpanShimTest");
|
||||||
private final TelemetryInfo telemetryInfo =
|
private final TelemetryInfo telemetryInfo =
|
||||||
new TelemetryInfo(tracer, OpenTelemetry.getGlobalPropagators());
|
new TelemetryInfo(tracer, GlobalOpenTelemetry.getPropagators());
|
||||||
private Span span;
|
private Span span;
|
||||||
|
|
||||||
private static final String SPAN_NAME = "Span";
|
private static final String SPAN_NAME = "Span";
|
||||||
|
|
|
@ -7,7 +7,7 @@ package io.opentelemetry.opentracingshim;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentracing.Scope;
|
import io.opentracing.Scope;
|
||||||
import io.opentracing.Span;
|
import io.opentracing.Span;
|
||||||
import io.opentracing.SpanContext;
|
import io.opentracing.SpanContext;
|
||||||
|
@ -33,8 +33,8 @@ class TracerShimTest {
|
||||||
tracerShim =
|
tracerShim =
|
||||||
new TracerShim(
|
new TracerShim(
|
||||||
new TelemetryInfo(
|
new TelemetryInfo(
|
||||||
OpenTelemetry.getGlobalTracer("opentracingshim"),
|
GlobalOpenTelemetry.getTracer("opentracingshim"),
|
||||||
OpenTelemetry.getGlobalPropagators()));
|
GlobalOpenTelemetry.getPropagators()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -10,7 +10,7 @@ import eu.rekawek.toxiproxy.ToxiproxyClient;
|
||||||
import eu.rekawek.toxiproxy.model.ToxicDirection;
|
import eu.rekawek.toxiproxy.model.ToxicDirection;
|
||||||
import eu.rekawek.toxiproxy.model.ToxicList;
|
import eu.rekawek.toxiproxy.model.ToxicList;
|
||||||
import eu.rekawek.toxiproxy.model.toxic.Timeout;
|
import eu.rekawek.toxiproxy.model.toxic.Timeout;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.common.Labels;
|
import io.opentelemetry.api.common.Labels;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
|
@ -203,7 +203,7 @@ public class OtlpPipelineStressTest {
|
||||||
|
|
||||||
private static void runOnce(Integer numberOfSpans, int numberOfMillisToRunFor)
|
private static void runOnce(Integer numberOfSpans, int numberOfMillisToRunFor)
|
||||||
throws InterruptedException {
|
throws InterruptedException {
|
||||||
Tracer tracer = OpenTelemetry.getGlobalTracer("io.opentelemetry.perf");
|
Tracer tracer = GlobalOpenTelemetry.getTracer("io.opentelemetry.perf");
|
||||||
long start = System.currentTimeMillis();
|
long start = System.currentTimeMillis();
|
||||||
int i = 0;
|
int i = 0;
|
||||||
while (numberOfSpans == null
|
while (numberOfSpans == null
|
||||||
|
|
|
@ -7,7 +7,7 @@ package io.opentelemetry.sdk.extension.jfr;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.context.ContextStorage;
|
import io.opentelemetry.context.ContextStorage;
|
||||||
|
@ -34,7 +34,7 @@ class JfrSpanProcessorTest {
|
||||||
|
|
||||||
/** Simple test to validate JFR events for Span and Scope. */
|
/** Simple test to validate JFR events for Span and Scope. */
|
||||||
public JfrSpanProcessorTest() {
|
public JfrSpanProcessorTest() {
|
||||||
tracer = OpenTelemetry.getGlobalTracer("JfrSpanProcessorTest");
|
tracer = GlobalOpenTelemetry.getTracer("JfrSpanProcessorTest");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.logging.export;
|
package io.opentelemetry.sdk.logging.export;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.common.Labels;
|
import io.opentelemetry.api.common.Labels;
|
||||||
import io.opentelemetry.api.internal.Utils;
|
import io.opentelemetry.api.internal.Utils;
|
||||||
import io.opentelemetry.api.metrics.LongCounter;
|
import io.opentelemetry.api.metrics.LongCounter;
|
||||||
|
@ -70,7 +70,7 @@ public class BatchLogProcessor implements LogProcessor {
|
||||||
|
|
||||||
private static class Worker implements Runnable {
|
private static class Worker implements Runnable {
|
||||||
static {
|
static {
|
||||||
Meter meter = OpenTelemetry.getGlobalMeter("io.opentelemetry.sdk.logging");
|
Meter meter = GlobalOpenTelemetry.getMeter("io.opentelemetry.sdk.logging");
|
||||||
LongCounter logRecordsProcessed =
|
LongCounter logRecordsProcessed =
|
||||||
meter
|
meter
|
||||||
.longCounterBuilder("logRecordsProcessed")
|
.longCounterBuilder("logRecordsProcessed")
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.extension.zpages;
|
package io.opentelemetry.sdk.extension.zpages;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.StatusCode;
|
import io.opentelemetry.api.trace.StatusCode;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
|
@ -30,7 +30,7 @@ public class TracezDataAggregatorBenchmark {
|
||||||
private static final String runningSpan = "RUNNING_SPAN";
|
private static final String runningSpan = "RUNNING_SPAN";
|
||||||
private static final String latencySpan = "LATENCY_SPAN";
|
private static final String latencySpan = "LATENCY_SPAN";
|
||||||
private static final String errorSpan = "ERROR_SPAN";
|
private static final String errorSpan = "ERROR_SPAN";
|
||||||
private final Tracer tracer = OpenTelemetry.getGlobalTracer("TracezDataAggregatorBenchmark");
|
private final Tracer tracer = GlobalOpenTelemetry.getTracer("TracezDataAggregatorBenchmark");
|
||||||
private final TracezSpanProcessor spanProcessor = TracezSpanProcessor.builder().build();
|
private final TracezSpanProcessor spanProcessor = TracezSpanProcessor.builder().build();
|
||||||
private final TracezDataAggregator dataAggregator = new TracezDataAggregator(spanProcessor);
|
private final TracezDataAggregator dataAggregator = new TracezDataAggregator(spanProcessor);
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.extension.zpages;
|
package io.opentelemetry.sdk.extension.zpages;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.sdk.trace.ReadableSpan;
|
import io.opentelemetry.sdk.trace.ReadableSpan;
|
||||||
|
@ -32,7 +32,7 @@ public class TracezSpanBucketsBenchmark {
|
||||||
@Setup(Level.Trial)
|
@Setup(Level.Trial)
|
||||||
public final void setup() {
|
public final void setup() {
|
||||||
bucket = new TracezSpanBuckets();
|
bucket = new TracezSpanBuckets();
|
||||||
Tracer tracer = OpenTelemetry.getGlobalTracer("TracezZPageBenchmark");
|
Tracer tracer = GlobalOpenTelemetry.getTracer("TracezZPageBenchmark");
|
||||||
Span span = tracer.spanBuilder(spanName).startSpan();
|
Span span = tracer.spanBuilder(spanName).startSpan();
|
||||||
span.end();
|
span.end();
|
||||||
readableSpan = (ReadableSpan) span;
|
readableSpan = (ReadableSpan) span;
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.trace;
|
package io.opentelemetry.sdk.trace;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span.Kind;
|
import io.opentelemetry.api.trace.Span.Kind;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||||
|
@ -26,7 +26,7 @@ import org.openjdk.jmh.annotations.Warmup;
|
||||||
@State(Scope.Benchmark)
|
@State(Scope.Benchmark)
|
||||||
public class SpanAttributeTruncateBenchmark {
|
public class SpanAttributeTruncateBenchmark {
|
||||||
|
|
||||||
private final Tracer tracerSdk = OpenTelemetry.getGlobalTracer("benchmarkTracer");
|
private final Tracer tracerSdk = GlobalOpenTelemetry.getTracer("benchmarkTracer");
|
||||||
private SdkSpanBuilder sdkSpanBuilder;
|
private SdkSpanBuilder sdkSpanBuilder;
|
||||||
|
|
||||||
public final String shortValue = "short";
|
public final String shortValue = "short";
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
package io.opentelemetry.sdk.trace.export;
|
package io.opentelemetry.sdk.trace.export;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.sdk.common.CompletableResultCode;
|
import io.opentelemetry.sdk.common.CompletableResultCode;
|
||||||
|
@ -79,7 +79,7 @@ public class BatchSpanProcessorBenchmark {
|
||||||
processor = BatchSpanProcessor.builder(exporter).build();
|
processor = BatchSpanProcessor.builder(exporter).build();
|
||||||
|
|
||||||
ImmutableList.Builder<Span> spans = ImmutableList.builderWithExpectedSize(spanCount);
|
ImmutableList.Builder<Span> spans = ImmutableList.builderWithExpectedSize(spanCount);
|
||||||
Tracer tracer = OpenTelemetry.getGlobalTracerProvider().get("benchmarkTracer");
|
Tracer tracer = GlobalOpenTelemetry.getTracerProvider().get("benchmarkTracer");
|
||||||
for (int i = 0; i < spanCount; i++) {
|
for (int i = 0; i < spanCount; i++) {
|
||||||
spans.add(tracer.spanBuilder("span").startSpan());
|
spans.add(tracer.spanBuilder("span").startSpan());
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.trace.export;
|
package io.opentelemetry.sdk.trace.export;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||||
import io.opentelemetry.sdk.common.CompletableResultCode;
|
import io.opentelemetry.sdk.common.CompletableResultCode;
|
||||||
|
@ -65,7 +65,7 @@ public class BatchSpanProcessorDroppedSpansBenchmark {
|
||||||
SpanExporter exporter = new DelayingSpanExporter();
|
SpanExporter exporter = new DelayingSpanExporter();
|
||||||
processor = BatchSpanProcessor.builder(exporter).build();
|
processor = BatchSpanProcessor.builder(exporter).build();
|
||||||
|
|
||||||
tracer = OpenTelemetry.getGlobalTracerProvider().get("benchmarkTracer");
|
tracer = GlobalOpenTelemetry.getTracerProvider().get("benchmarkTracer");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TearDown(Level.Trial)
|
@TearDown(Level.Trial)
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
package io.opentelemetry.sdk.trace.export;
|
package io.opentelemetry.sdk.trace.export;
|
||||||
|
|
||||||
import com.google.common.collect.ImmutableList;
|
import com.google.common.collect.ImmutableList;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.sdk.common.CompletableResultCode;
|
import io.opentelemetry.sdk.common.CompletableResultCode;
|
||||||
|
@ -79,7 +79,7 @@ public class BatchSpanProcessorFlushBenchmark {
|
||||||
processor = BatchSpanProcessor.builder(exporter).build();
|
processor = BatchSpanProcessor.builder(exporter).build();
|
||||||
|
|
||||||
ImmutableList.Builder<Span> spans = ImmutableList.builderWithExpectedSize(spanCount);
|
ImmutableList.Builder<Span> spans = ImmutableList.builderWithExpectedSize(spanCount);
|
||||||
Tracer tracer = OpenTelemetry.getGlobalTracerProvider().get("benchmarkTracer");
|
Tracer tracer = GlobalOpenTelemetry.getTracerProvider().get("benchmarkTracer");
|
||||||
for (int i = 0; i < spanCount; i++) {
|
for (int i = 0; i < spanCount; i++) {
|
||||||
spans.add(tracer.spanBuilder("span").startSpan());
|
spans.add(tracer.spanBuilder("span").startSpan());
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,7 @@ import static java.util.Objects.requireNonNull;
|
||||||
|
|
||||||
import io.opentelemetry.api.DefaultOpenTelemetry;
|
import io.opentelemetry.api.DefaultOpenTelemetry;
|
||||||
import io.opentelemetry.api.DefaultOpenTelemetryBuilder;
|
import io.opentelemetry.api.DefaultOpenTelemetryBuilder;
|
||||||
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.api.metrics.MeterProvider;
|
import io.opentelemetry.api.metrics.MeterProvider;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
|
@ -42,12 +43,12 @@ public final class OpenTelemetrySdk extends DefaultOpenTelemetry {
|
||||||
|
|
||||||
/** Returns the global {@link OpenTelemetrySdk}. */
|
/** Returns the global {@link OpenTelemetrySdk}. */
|
||||||
public static OpenTelemetrySdk get() {
|
public static OpenTelemetrySdk get() {
|
||||||
return (OpenTelemetrySdk) OpenTelemetry.get();
|
return (OpenTelemetrySdk) GlobalOpenTelemetry.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Returns the global {@link SdkTracerManagement}. */
|
/** Returns the global {@link SdkTracerManagement}. */
|
||||||
public static SdkTracerManagement getGlobalTracerManagement() {
|
public static SdkTracerManagement getGlobalTracerManagement() {
|
||||||
TracerProvider tracerProvider = OpenTelemetry.get().getTracerProvider();
|
TracerProvider tracerProvider = GlobalOpenTelemetry.get().getTracerProvider();
|
||||||
if (!(tracerProvider instanceof ObfuscatedTracerProvider)) {
|
if (!(tracerProvider instanceof ObfuscatedTracerProvider)) {
|
||||||
throw new IllegalStateException(
|
throw new IllegalStateException(
|
||||||
"Trying to access global TracerSdkManagement but global TracerProvider is not an "
|
"Trying to access global TracerSdkManagement but global TracerProvider is not an "
|
||||||
|
@ -58,7 +59,7 @@ public final class OpenTelemetrySdk extends DefaultOpenTelemetry {
|
||||||
|
|
||||||
/** Returns the global {@link MeterSdkProvider}. */
|
/** Returns the global {@link MeterSdkProvider}. */
|
||||||
public static MeterSdkProvider getGlobalMeterProvider() {
|
public static MeterSdkProvider getGlobalMeterProvider() {
|
||||||
return (MeterSdkProvider) OpenTelemetry.get().getMeterProvider();
|
return (MeterSdkProvider) GlobalOpenTelemetry.get().getMeterProvider();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final AtomicBoolean INITIALIZED_GLOBAL = new AtomicBoolean();
|
private static final AtomicBoolean INITIALIZED_GLOBAL = new AtomicBoolean();
|
||||||
|
@ -230,7 +231,7 @@ public final class OpenTelemetrySdk extends DefaultOpenTelemetry {
|
||||||
resource == null ? Resource.getDefault() : resource);
|
resource == null ? Resource.getDefault() : resource);
|
||||||
// Automatically initialize global OpenTelemetry with the first SDK we build.
|
// Automatically initialize global OpenTelemetry with the first SDK we build.
|
||||||
if (INITIALIZED_GLOBAL.compareAndSet(/* expectedValue= */ false, /* newValue= */ true)) {
|
if (INITIALIZED_GLOBAL.compareAndSet(/* expectedValue= */ false, /* newValue= */ true)) {
|
||||||
OpenTelemetry.set(sdk);
|
GlobalOpenTelemetry.set(sdk);
|
||||||
}
|
}
|
||||||
return sdk;
|
return sdk;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,7 @@ import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
|
||||||
import io.opentelemetry.api.DefaultOpenTelemetry;
|
import io.opentelemetry.api.DefaultOpenTelemetry;
|
||||||
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.api.common.Attributes;
|
import io.opentelemetry.api.common.Attributes;
|
||||||
import io.opentelemetry.api.metrics.MeterProvider;
|
import io.opentelemetry.api.metrics.MeterProvider;
|
||||||
|
@ -48,41 +49,42 @@ class OpenTelemetrySdkTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetGlobal() {
|
void testGetGlobal() {
|
||||||
assertThat(OpenTelemetrySdk.get()).isSameAs(OpenTelemetry.get());
|
assertThat(OpenTelemetrySdk.get()).isSameAs(GlobalOpenTelemetry.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGetTracerManagementWhenNotTracerSdk() {
|
void testGetTracerManagementWhenNotTracerSdk() {
|
||||||
OpenTelemetry previous = OpenTelemetry.get();
|
OpenTelemetry previous = GlobalOpenTelemetry.get();
|
||||||
assertThatCode(OpenTelemetrySdk::getGlobalTracerManagement).doesNotThrowAnyException();
|
assertThatCode(OpenTelemetrySdk::getGlobalTracerManagement).doesNotThrowAnyException();
|
||||||
try {
|
try {
|
||||||
OpenTelemetry.set(DefaultOpenTelemetry.builder().setTracerProvider(tracerProvider).build());
|
GlobalOpenTelemetry.set(
|
||||||
|
DefaultOpenTelemetry.builder().setTracerProvider(tracerProvider).build());
|
||||||
assertThatThrownBy(OpenTelemetrySdk::getGlobalTracerManagement)
|
assertThatThrownBy(OpenTelemetrySdk::getGlobalTracerManagement)
|
||||||
.isInstanceOf(IllegalStateException.class);
|
.isInstanceOf(IllegalStateException.class);
|
||||||
} finally {
|
} finally {
|
||||||
OpenTelemetry.set(previous);
|
GlobalOpenTelemetry.set(previous);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testGlobalDefault() {
|
void testGlobalDefault() {
|
||||||
assertThat(((SdkTracerProvider) OpenTelemetrySdk.getGlobalTracerManagement()).get(""))
|
assertThat(((SdkTracerProvider) OpenTelemetrySdk.getGlobalTracerManagement()).get(""))
|
||||||
.isSameAs(OpenTelemetry.getGlobalTracerProvider().get(""));
|
.isSameAs(GlobalOpenTelemetry.getTracerProvider().get(""));
|
||||||
assertThat(OpenTelemetrySdk.getGlobalMeterProvider())
|
assertThat(OpenTelemetrySdk.getGlobalMeterProvider())
|
||||||
.isSameAs(OpenTelemetry.getGlobalMeterProvider());
|
.isSameAs(GlobalOpenTelemetry.getMeterProvider());
|
||||||
assertThat(OpenTelemetrySdk.getGlobalTracerManagement()).isNotNull();
|
assertThat(OpenTelemetrySdk.getGlobalTracerManagement()).isNotNull();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
void testShortcutVersions() {
|
void testShortcutVersions() {
|
||||||
assertThat(OpenTelemetry.getGlobalTracer("testTracer1"))
|
assertThat(GlobalOpenTelemetry.getTracer("testTracer1"))
|
||||||
.isEqualTo(OpenTelemetry.getGlobalTracerProvider().get("testTracer1"));
|
.isEqualTo(GlobalOpenTelemetry.getTracerProvider().get("testTracer1"));
|
||||||
assertThat(OpenTelemetry.getGlobalTracer("testTracer2", "testVersion"))
|
assertThat(GlobalOpenTelemetry.getTracer("testTracer2", "testVersion"))
|
||||||
.isEqualTo(OpenTelemetry.getGlobalTracerProvider().get("testTracer2", "testVersion"));
|
.isEqualTo(GlobalOpenTelemetry.getTracerProvider().get("testTracer2", "testVersion"));
|
||||||
assertThat(OpenTelemetry.getGlobalMeter("testMeter1"))
|
assertThat(GlobalOpenTelemetry.getMeter("testMeter1"))
|
||||||
.isEqualTo(OpenTelemetry.getGlobalMeterProvider().get("testMeter1"));
|
.isEqualTo(GlobalOpenTelemetry.getMeterProvider().get("testMeter1"));
|
||||||
assertThat(OpenTelemetry.getGlobalMeter("testMeter2", "testVersion"))
|
assertThat(GlobalOpenTelemetry.getMeter("testMeter2", "testVersion"))
|
||||||
.isEqualTo(OpenTelemetry.getGlobalMeterProvider().get("testMeter2", "testVersion"));
|
.isEqualTo(GlobalOpenTelemetry.getMeterProvider().get("testMeter2", "testVersion"));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -7,7 +7,7 @@ package io.opentelemetry.sdk.metrics.spi;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.sdk.metrics.MeterSdkProvider;
|
import io.opentelemetry.sdk.metrics.MeterSdkProvider;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
@ -15,6 +15,6 @@ import org.junit.jupiter.api.Test;
|
||||||
class MeterProviderFactorySdkTest {
|
class MeterProviderFactorySdkTest {
|
||||||
@Test
|
@Test
|
||||||
void testDefault() {
|
void testDefault() {
|
||||||
assertThat(OpenTelemetry.getGlobalMeterProvider()).isInstanceOf(MeterSdkProvider.class);
|
assertThat(GlobalOpenTelemetry.getMeterProvider()).isInstanceOf(MeterSdkProvider.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,7 +27,7 @@ import java.util.concurrent.LinkedBlockingQueue;
|
||||||
*
|
*
|
||||||
* // creating InMemoryMetricExporter
|
* // creating InMemoryMetricExporter
|
||||||
* private final InMemoryMetricExporter exporter = InMemoryMetricExporter.create();
|
* private final InMemoryMetricExporter exporter = InMemoryMetricExporter.create();
|
||||||
* private final MeterSdkProvider meterSdkProvider = OpenTelemetrySdk.getGlobalMeterProvider();
|
* private final MeterSdkProvider meterSdkProvider = OpenTelemetrySdk.getMeterProvider();
|
||||||
* private final Meter meter = meterSdkProvider.get("InMemoryMetricExporterExample");
|
* private final Meter meter = meterSdkProvider.get("InMemoryMetricExporterExample");
|
||||||
* private IntervalMetricReader intervalMetricReader;
|
* private IntervalMetricReader intervalMetricReader;
|
||||||
*
|
*
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.testing.junit4;
|
package io.opentelemetry.sdk.testing.junit4;
|
||||||
|
|
||||||
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
||||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||||
|
@ -97,13 +98,13 @@ public class OpenTelemetryRule extends ExternalResource {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void before() throws Throwable {
|
protected void before() throws Throwable {
|
||||||
previousGlobalOpenTelemetry = OpenTelemetry.get();
|
previousGlobalOpenTelemetry = GlobalOpenTelemetry.get();
|
||||||
OpenTelemetry.set(openTelemetry);
|
GlobalOpenTelemetry.set(openTelemetry);
|
||||||
clearSpans();
|
clearSpans();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void after() {
|
protected void after() {
|
||||||
OpenTelemetry.set(previousGlobalOpenTelemetry);
|
GlobalOpenTelemetry.set(previousGlobalOpenTelemetry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ package io.opentelemetry.sdk.testing.junit5;
|
||||||
|
|
||||||
import static io.opentelemetry.sdk.testing.assertj.TracesAssert.assertThat;
|
import static io.opentelemetry.sdk.testing.assertj.TracesAssert.assertThat;
|
||||||
|
|
||||||
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
||||||
import io.opentelemetry.context.propagation.ContextPropagators;
|
import io.opentelemetry.context.propagation.ContextPropagators;
|
||||||
|
@ -125,12 +126,12 @@ public class OpenTelemetryExtension
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void beforeAll(ExtensionContext context) {
|
public void beforeAll(ExtensionContext context) {
|
||||||
previousGlobalOpenTelemetry = OpenTelemetry.get();
|
previousGlobalOpenTelemetry = GlobalOpenTelemetry.get();
|
||||||
OpenTelemetry.set(openTelemetry);
|
GlobalOpenTelemetry.set(openTelemetry);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void afterAll(ExtensionContext context) {
|
public void afterAll(ExtensionContext context) {
|
||||||
OpenTelemetry.set(previousGlobalOpenTelemetry);
|
GlobalOpenTelemetry.set(previousGlobalOpenTelemetry);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,7 @@ package io.opentelemetry.sdk.testing.junit4;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import org.junit.AfterClass;
|
import org.junit.AfterClass;
|
||||||
|
@ -24,12 +25,12 @@ public class OpenTelemetryRuleTest {
|
||||||
// Class callbacks happen outside the rule so we can verify the restoration behavior in them.
|
// Class callbacks happen outside the rule so we can verify the restoration behavior in them.
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void beforeTest() {
|
public static void beforeTest() {
|
||||||
openTelemetryBeforeTest = OpenTelemetry.get();
|
openTelemetryBeforeTest = GlobalOpenTelemetry.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass
|
@AfterClass
|
||||||
public static void afterTest() {
|
public static void afterTest() {
|
||||||
assertThat(OpenTelemetry.get()).isSameAs(openTelemetryBeforeTest);
|
assertThat(GlobalOpenTelemetry.get()).isSameAs(openTelemetryBeforeTest);
|
||||||
}
|
}
|
||||||
|
|
||||||
private Tracer tracer;
|
private Tracer tracer;
|
||||||
|
|
|
@ -8,6 +8,7 @@ package io.opentelemetry.sdk.testing.junit5;
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
import static org.assertj.core.api.Assertions.assertThatThrownBy;
|
||||||
|
|
||||||
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.OpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
|
@ -30,12 +31,12 @@ class OpenTelemetryExtensionTest {
|
||||||
// Class callbacks happen outside the rule so we can verify the restoration behavior in them.
|
// Class callbacks happen outside the rule so we can verify the restoration behavior in them.
|
||||||
@BeforeAll
|
@BeforeAll
|
||||||
public static void beforeTest() {
|
public static void beforeTest() {
|
||||||
openTelemetryBeforeTest = OpenTelemetry.get();
|
openTelemetryBeforeTest = GlobalOpenTelemetry.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterAll
|
@AfterAll
|
||||||
public static void afterTest() {
|
public static void afterTest() {
|
||||||
assertThat(OpenTelemetry.get()).isSameAs(openTelemetryBeforeTest);
|
assertThat(GlobalOpenTelemetry.get()).isSameAs(openTelemetryBeforeTest);
|
||||||
}
|
}
|
||||||
|
|
||||||
private final Tracer tracer = otelTesting.getOpenTelemetry().getTracer("test");
|
private final Tracer tracer = otelTesting.getOpenTelemetry().getTracer("test");
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.trace.export;
|
package io.opentelemetry.sdk.trace.export;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.common.Labels;
|
import io.opentelemetry.api.common.Labels;
|
||||||
import io.opentelemetry.api.metrics.LongCounter;
|
import io.opentelemetry.api.metrics.LongCounter;
|
||||||
import io.opentelemetry.api.metrics.LongCounter.BoundLongCounter;
|
import io.opentelemetry.api.metrics.LongCounter.BoundLongCounter;
|
||||||
|
@ -169,7 +169,7 @@ public final class BatchSpanProcessor implements SpanProcessor {
|
||||||
this.maxExportBatchSize = maxExportBatchSize;
|
this.maxExportBatchSize = maxExportBatchSize;
|
||||||
this.exporterTimeoutMillis = exporterTimeoutMillis;
|
this.exporterTimeoutMillis = exporterTimeoutMillis;
|
||||||
this.queue = queue;
|
this.queue = queue;
|
||||||
Meter meter = OpenTelemetry.getGlobalMeter("io.opentelemetry.sdk.trace");
|
Meter meter = GlobalOpenTelemetry.getMeter("io.opentelemetry.sdk.trace");
|
||||||
meter
|
meter
|
||||||
.longValueObserverBuilder("queueSize")
|
.longValueObserverBuilder("queueSize")
|
||||||
.setDescription("The number of spans queued")
|
.setDescription("The number of spans queued")
|
||||||
|
|
|
@ -7,7 +7,7 @@ package io.opentelemetry.sdk.trace.spi;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -18,6 +18,6 @@ class TracerProviderFactorySdkTest {
|
||||||
@Test
|
@Test
|
||||||
void testDefault() {
|
void testDefault() {
|
||||||
Tracer tracerSdk = SdkTracerProvider.builder().build().get("");
|
Tracer tracerSdk = SdkTracerProvider.builder().build().get("");
|
||||||
assertThat(OpenTelemetry.getGlobalTracerProvider().get("")).isInstanceOf(tracerSdk.getClass());
|
assertThat(GlobalOpenTelemetry.getTracerProvider().get("")).isInstanceOf(tracerSdk.getClass());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.trace.testbed.clientserver;
|
package io.opentelemetry.sdk.trace.testbed.clientserver;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Span.Kind;
|
import io.opentelemetry.api.trace.Span.Kind;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
|
@ -30,7 +30,7 @@ final class Client {
|
||||||
span.setAttribute("component", "example-client");
|
span.setAttribute("component", "example-client");
|
||||||
|
|
||||||
try (Scope ignored = span.makeCurrent()) {
|
try (Scope ignored = span.makeCurrent()) {
|
||||||
OpenTelemetry.getGlobalPropagators()
|
GlobalOpenTelemetry.getPropagators()
|
||||||
.getTextMapPropagator()
|
.getTextMapPropagator()
|
||||||
.inject(Context.current(), message, Message::put);
|
.inject(Context.current(), message, Message::put);
|
||||||
queue.put(message);
|
queue.put(message);
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
package io.opentelemetry.sdk.trace.testbed.clientserver;
|
package io.opentelemetry.sdk.trace.testbed.clientserver;
|
||||||
|
|
||||||
import io.opentelemetry.api.OpenTelemetry;
|
import io.opentelemetry.api.GlobalOpenTelemetry;
|
||||||
import io.opentelemetry.api.trace.Span;
|
import io.opentelemetry.api.trace.Span;
|
||||||
import io.opentelemetry.api.trace.Span.Kind;
|
import io.opentelemetry.api.trace.Span.Kind;
|
||||||
import io.opentelemetry.api.trace.Tracer;
|
import io.opentelemetry.api.trace.Tracer;
|
||||||
|
@ -27,7 +27,7 @@ final class Server extends Thread {
|
||||||
|
|
||||||
private void process(Message message) {
|
private void process(Message message) {
|
||||||
Context context =
|
Context context =
|
||||||
OpenTelemetry.getGlobalPropagators()
|
GlobalOpenTelemetry.getPropagators()
|
||||||
.getTextMapPropagator()
|
.getTextMapPropagator()
|
||||||
.extract(
|
.extract(
|
||||||
Context.current(),
|
Context.current(),
|
||||||
|
|
Loading…
Reference in New Issue