add shortcut methods to get tracers and meters (#1159)
* add shortcut methods to get tracers and meters * add shortcut methods to get tracers and meters * add shortcut methods to get tracers and meters * add shortcut methods to get tracers and meters
This commit is contained in:
parent
19d7e03572
commit
ebcd508a88
|
|
@ -40,7 +40,7 @@ monitored. More information is available in the specification chapter [Obtaining
|
||||||
|
|
||||||
```java
|
```java
|
||||||
Tracer tracer =
|
Tracer tracer =
|
||||||
OpenTelemetry.getTracerProvider().get("instrumentation-library-name","semver:1.0.0");
|
OpenTelemetry.getTracer("instrumentation-library-name","semver:1.0.0");
|
||||||
```
|
```
|
||||||
|
|
||||||
### Create basic Span
|
### Create basic Span
|
||||||
|
|
@ -255,7 +255,7 @@ The following is an example of counter usage:
|
||||||
|
|
||||||
```java
|
```java
|
||||||
// Gets or creates a named meter instance
|
// Gets or creates a named meter instance
|
||||||
Meter meter = OpenTelemetry.getMeterProvider().get("instrumentation-library-name","semver:1.0.0");
|
Meter meter = OpenTelemetry.getMeter("instrumentation-library-name","semver:1.0.0");
|
||||||
|
|
||||||
// Build counter e.g. LongCounter
|
// Build counter e.g. LongCounter
|
||||||
LongCounter counter = meter
|
LongCounter counter = meter
|
||||||
|
|
|
||||||
|
|
@ -74,6 +74,37 @@ public final class OpenTelemetry {
|
||||||
return getInstance().tracerProvider;
|
return getInstance().tracerProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets or creates a named tracer instance.
|
||||||
|
*
|
||||||
|
* <p>This is a shortcut method for <code>getTracerProvider().get(instrumentationName)</code>.
|
||||||
|
*
|
||||||
|
* @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.
|
||||||
|
* @since 0.4.0
|
||||||
|
*/
|
||||||
|
public static Tracer getTracer(String instrumentationName) {
|
||||||
|
return getTracerProvider().get(instrumentationName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets or creates a named and versioned tracer instance.
|
||||||
|
*
|
||||||
|
* <p>This is a shortcut method for <code>
|
||||||
|
* getTracerProvider().get(instrumentationName, instrumentationVersion)</code>.
|
||||||
|
*
|
||||||
|
* @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.,
|
||||||
|
* "semver:1.0.0").
|
||||||
|
* @return a tracer instance.
|
||||||
|
* @since 0.4.0
|
||||||
|
*/
|
||||||
|
public static Tracer getTracer(String instrumentationName, String instrumentationVersion) {
|
||||||
|
return getTracerProvider().get(instrumentationName, instrumentationVersion);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a singleton {@link MeterProvider}.
|
* Returns a singleton {@link MeterProvider}.
|
||||||
*
|
*
|
||||||
|
|
@ -86,6 +117,36 @@ public final class OpenTelemetry {
|
||||||
return getInstance().meterProvider;
|
return getInstance().meterProvider;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets or creates a named meter instance.
|
||||||
|
*
|
||||||
|
* <p>This is a shortcut method for <code>getMeterProvider().get(instrumentationName)</code>.
|
||||||
|
*
|
||||||
|
* @param instrumentationName The name of the instrumentation library, not the name of the
|
||||||
|
* instrument*ed* library.
|
||||||
|
* @return a tracer instance.
|
||||||
|
* @since 0.4.0
|
||||||
|
*/
|
||||||
|
public static Meter getMeter(String instrumentationName) {
|
||||||
|
return getMeterProvider().get(instrumentationName);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets or creates a named and versioned meter instance.
|
||||||
|
*
|
||||||
|
* <p>This is a shortcut method for <code>
|
||||||
|
* getMeterProvider().get(instrumentationName, instrumentationVersion)</code>.
|
||||||
|
*
|
||||||
|
* @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.
|
||||||
|
* @since 0.4.0
|
||||||
|
*/
|
||||||
|
public static Meter getMeter(String instrumentationName, String instrumentationVersion) {
|
||||||
|
return getMeterProvider().get(instrumentationName, instrumentationVersion);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a singleton {@link CorrelationContextManager}.
|
* Returns a singleton {@link CorrelationContextManager}.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -118,7 +118,7 @@ public class OpenTelemetryTest {
|
||||||
public void testTracerNotFound() {
|
public void testTracerNotFound() {
|
||||||
System.setProperty(TraceProvider.class.getName(), "io.does.not.exists");
|
System.setProperty(TraceProvider.class.getName(), "io.does.not.exists");
|
||||||
thrown.expect(IllegalStateException.class);
|
thrown.expect(IllegalStateException.class);
|
||||||
OpenTelemetry.getTracerProvider().get("testTracer");
|
OpenTelemetry.getTracer("testTracer");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ public class DoubleCounterTest {
|
||||||
private static final String DESCRIPTION = "description";
|
private static final String DESCRIPTION = "description";
|
||||||
private static final String UNIT = "1";
|
private static final String UNIT = "1";
|
||||||
|
|
||||||
private final Meter meter = OpenTelemetry.getMeterProvider().get("counter_double_test");
|
private final Meter meter = OpenTelemetry.getMeter("counter_double_test");
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void preventNonPrintableName() {
|
public void preventNonPrintableName() {
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ import org.junit.runners.JUnit4;
|
||||||
public class DoubleObserverTest {
|
public class DoubleObserverTest {
|
||||||
@Rule public ExpectedException thrown = ExpectedException.none();
|
@Rule public ExpectedException thrown = ExpectedException.none();
|
||||||
|
|
||||||
private final Meter meter = OpenTelemetry.getMeterProvider().get("observer_double_test");
|
private final Meter meter = OpenTelemetry.getMeter("observer_double_test");
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void preventNonPrintableName() {
|
public void preventNonPrintableName() {
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ public class LongCounterTest {
|
||||||
private static final String DESCRIPTION = "description";
|
private static final String DESCRIPTION = "description";
|
||||||
private static final String UNIT = "1";
|
private static final String UNIT = "1";
|
||||||
|
|
||||||
private final Meter meter = OpenTelemetry.getMeterProvider().get("counter_long_test");
|
private final Meter meter = OpenTelemetry.getMeter("counter_long_test");
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void preventNonPrintableName() {
|
public void preventNonPrintableName() {
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ import org.junit.runners.JUnit4;
|
||||||
public class LongObserverTest {
|
public class LongObserverTest {
|
||||||
@Rule public ExpectedException thrown = ExpectedException.none();
|
@Rule public ExpectedException thrown = ExpectedException.none();
|
||||||
|
|
||||||
private final Meter meter = OpenTelemetry.getMeterProvider().get("observer_long_test");
|
private final Meter meter = OpenTelemetry.getMeter("observer_long_test");
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void preventNonPrintableName() {
|
public void preventNonPrintableName() {
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ public class SemanticAttributesTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
Tracer tracer = OpenTelemetry.getTracerProvider().get("io.telemetry.api");
|
Tracer tracer = OpenTelemetry.getTracer("io.telemetry.api");
|
||||||
span = tracer.spanBuilder("junit").startSpan();
|
span = tracer.spanBuilder("junit").startSpan();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ public final class GarbageCollector {
|
||||||
/** Constructs a new module that is capable to export metrics about "jvm_gc". */
|
/** Constructs a new module that is capable to export metrics about "jvm_gc". */
|
||||||
public GarbageCollector() {
|
public GarbageCollector() {
|
||||||
this.garbageCollectors = ManagementFactory.getGarbageCollectorMXBeans();
|
this.garbageCollectors = ManagementFactory.getGarbageCollectorMXBeans();
|
||||||
this.meter = OpenTelemetry.getMeterProvider().get("jvm_gc");
|
this.meter = OpenTelemetry.getMeter("jvm_gc");
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Export all metrics generated by this module. */
|
/** Export all metrics generated by this module. */
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@ public final class MemoryPools {
|
||||||
public MemoryPools() {
|
public MemoryPools() {
|
||||||
this.memoryBean = ManagementFactory.getMemoryMXBean();
|
this.memoryBean = ManagementFactory.getMemoryMXBean();
|
||||||
this.poolBeans = ManagementFactory.getMemoryPoolMXBeans();
|
this.poolBeans = ManagementFactory.getMemoryPoolMXBeans();
|
||||||
this.meter = OpenTelemetry.getMeterProvider().get("jvm_memory");
|
this.meter = OpenTelemetry.getMeter("jvm_memory");
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Export only the "area" metric. */
|
/** Export only the "area" metric. */
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ public class HelloWorldClient {
|
||||||
|
|
||||||
// OTel API
|
// OTel API
|
||||||
Tracer tracer =
|
Tracer tracer =
|
||||||
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.HelloWorldClient");;
|
OpenTelemetry.getTracer("io.opentelemetry.example.HelloWorldClient");;
|
||||||
// Export traces as log
|
// Export traces as log
|
||||||
LoggingSpanExporter exporter = new LoggingSpanExporter();
|
LoggingSpanExporter exporter = new LoggingSpanExporter();
|
||||||
// Share context via text headers
|
// Share context via text headers
|
||||||
|
|
|
||||||
|
|
@ -54,7 +54,7 @@ public class HelloWorldClientStream {
|
||||||
|
|
||||||
// OTel API
|
// OTel API
|
||||||
Tracer tracer =
|
Tracer tracer =
|
||||||
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.HelloWorldClient");;
|
OpenTelemetry.getTracer("io.opentelemetry.example.HelloWorldClient");;
|
||||||
// Export traces as log
|
// Export traces as log
|
||||||
LoggingSpanExporter exporter = new LoggingSpanExporter();
|
LoggingSpanExporter exporter = new LoggingSpanExporter();
|
||||||
// Share context via text headers
|
// Share context via text headers
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ public class HelloWorldServer {
|
||||||
|
|
||||||
// OTel API
|
// OTel API
|
||||||
Tracer tracer =
|
Tracer tracer =
|
||||||
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.HelloWorldServer");
|
OpenTelemetry.getTracer("io.opentelemetry.example.HelloWorldServer");
|
||||||
// Export traces as log
|
// Export traces as log
|
||||||
LoggingSpanExporter exporter = new LoggingSpanExporter();
|
LoggingSpanExporter exporter = new LoggingSpanExporter();
|
||||||
// Share context via text
|
// Share context via text
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ public class HttpClient {
|
||||||
|
|
||||||
// OTel API
|
// OTel API
|
||||||
private static Tracer tracer =
|
private static Tracer tracer =
|
||||||
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.http.HttpClient");
|
OpenTelemetry.getTracer("io.opentelemetry.example.http.HttpClient");
|
||||||
// Export traces to log
|
// Export traces to log
|
||||||
private static LoggingSpanExporter loggingExporter = new LoggingSpanExporter();
|
private static LoggingSpanExporter loggingExporter = new LoggingSpanExporter();
|
||||||
// Inject the span context into the request
|
// Inject the span context into the request
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,6 @@ import io.opentelemetry.exporters.logging.LoggingSpanExporter;
|
||||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||||
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
import io.opentelemetry.sdk.trace.TracerSdkProvider;
|
||||||
import io.opentelemetry.sdk.trace.export.SimpleSpansProcessor;
|
import io.opentelemetry.sdk.trace.export.SimpleSpansProcessor;
|
||||||
import io.opentelemetry.trace.*;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStream;
|
import java.io.OutputStream;
|
||||||
import java.net.InetSocketAddress;
|
import java.net.InetSocketAddress;
|
||||||
|
|
@ -101,7 +100,7 @@ public class HttpServer {
|
||||||
|
|
||||||
// OTel API
|
// OTel API
|
||||||
private static Tracer tracer =
|
private static Tracer tracer =
|
||||||
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.http.HttpServer");
|
OpenTelemetry.getTracer("io.opentelemetry.example.http.HttpServer");
|
||||||
// Export traces to log
|
// Export traces to log
|
||||||
private static LoggingSpanExporter loggingExporter = new LoggingSpanExporter();
|
private static LoggingSpanExporter loggingExporter = new LoggingSpanExporter();
|
||||||
// Extract the context from http headers
|
// Extract the context from http headers
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ public class JaegerExample {
|
||||||
|
|
||||||
// OTel API
|
// OTel API
|
||||||
private Tracer tracer =
|
private Tracer tracer =
|
||||||
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.JaegerExample");
|
OpenTelemetry.getTracer("io.opentelemetry.example.JaegerExample");
|
||||||
// Export traces to Jaeger
|
// Export traces to Jaeger
|
||||||
private JaegerGrpcSpanExporter jaegerExporter;
|
private JaegerGrpcSpanExporter jaegerExporter;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,8 +49,7 @@ public class JaegerIntegrationTest {
|
||||||
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 =
|
private final Tracer tracer = OpenTelemetry.getTracer(getClass().getCanonicalName());
|
||||||
OpenTelemetry.getTracerProvider().get(getClass().getCanonicalName());
|
|
||||||
|
|
||||||
@SuppressWarnings("rawtypes")
|
@SuppressWarnings("rawtypes")
|
||||||
@ClassRule
|
@ClassRule
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ public class TraceShimTest {
|
||||||
@Test
|
@Test
|
||||||
public void createTracerShim_default() {
|
public void createTracerShim_default() {
|
||||||
TracerShim tracerShim = (TracerShim) TraceShim.createTracerShim();
|
TracerShim tracerShim = (TracerShim) TraceShim.createTracerShim();
|
||||||
assertEquals(OpenTelemetry.getTracerProvider().get("opentracingshim"), tracerShim.tracer());
|
assertEquals(OpenTelemetry.getTracer("opentracingshim"), tracerShim.tracer());
|
||||||
assertEquals(OpenTelemetry.getCorrelationContextManager(), tracerShim.contextManager());
|
assertEquals(OpenTelemetry.getCorrelationContextManager(), tracerShim.contextManager());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -42,7 +42,7 @@ public class TracerShimTest {
|
||||||
tracerShim =
|
tracerShim =
|
||||||
new TracerShim(
|
new TracerShim(
|
||||||
new TelemetryInfo(
|
new TelemetryInfo(
|
||||||
OpenTelemetry.getTracerProvider().get("opentracingshim"),
|
OpenTelemetry.getTracer("opentracingshim"),
|
||||||
OpenTelemetry.getCorrelationContextManager(),
|
OpenTelemetry.getCorrelationContextManager(),
|
||||||
OpenTelemetry.getPropagators()));
|
OpenTelemetry.getPropagators()));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ public final class BatchSpansProcessor implements SpanProcessor {
|
||||||
private static final class Worker implements Runnable {
|
private static final class Worker implements Runnable {
|
||||||
|
|
||||||
static {
|
static {
|
||||||
Meter meter = OpenTelemetry.getMeterProvider().get("io.opentelemetry.sdk.trace");
|
Meter meter = OpenTelemetry.getMeter("io.opentelemetry.sdk.trace");
|
||||||
LongCounter droppedSpansCounter =
|
LongCounter droppedSpansCounter =
|
||||||
meter
|
meter
|
||||||
.longCounterBuilder("droppedSpans")
|
.longCounterBuilder("droppedSpans")
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue