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:
Gregor Zeitlinger 2020-05-06 20:30:33 +02:00 committed by GitHub
parent 19d7e03572
commit ebcd508a88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 81 additions and 22 deletions

View File

@ -40,7 +40,7 @@ monitored. More information is available in the specification chapter [Obtaining
```java
Tracer tracer =
OpenTelemetry.getTracerProvider().get("instrumentation-library-name","semver:1.0.0");
OpenTelemetry.getTracer("instrumentation-library-name","semver:1.0.0");
```
### Create basic Span
@ -255,7 +255,7 @@ The following is an example of counter usage:
```java
// 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
LongCounter counter = meter

View File

@ -74,6 +74,37 @@ public final class OpenTelemetry {
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}.
*
@ -86,6 +117,36 @@ public final class OpenTelemetry {
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}.
*

View File

@ -118,7 +118,7 @@ public class OpenTelemetryTest {
public void testTracerNotFound() {
System.setProperty(TraceProvider.class.getName(), "io.does.not.exists");
thrown.expect(IllegalStateException.class);
OpenTelemetry.getTracerProvider().get("testTracer");
OpenTelemetry.getTracer("testTracer");
}
@Test

View File

@ -34,7 +34,7 @@ public class DoubleCounterTest {
private static final String DESCRIPTION = "description";
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
public void preventNonPrintableName() {

View File

@ -30,7 +30,7 @@ import org.junit.runners.JUnit4;
public class DoubleObserverTest {
@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
public void preventNonPrintableName() {

View File

@ -34,7 +34,7 @@ public class LongCounterTest {
private static final String DESCRIPTION = "description";
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
public void preventNonPrintableName() {

View File

@ -30,7 +30,7 @@ import org.junit.runners.JUnit4;
public class LongObserverTest {
@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
public void preventNonPrintableName() {

View File

@ -37,7 +37,7 @@ public class SemanticAttributesTest {
@Before
public void setUp() {
Tracer tracer = OpenTelemetry.getTracerProvider().get("io.telemetry.api");
Tracer tracer = OpenTelemetry.getTracer("io.telemetry.api");
span = tracer.spanBuilder("junit").startSpan();
}

View File

@ -50,7 +50,7 @@ public final class GarbageCollector {
/** Constructs a new module that is capable to export metrics about "jvm_gc". */
public GarbageCollector() {
this.garbageCollectors = ManagementFactory.getGarbageCollectorMXBeans();
this.meter = OpenTelemetry.getMeterProvider().get("jvm_gc");
this.meter = OpenTelemetry.getMeter("jvm_gc");
}
/** Export all metrics generated by this module. */

View File

@ -63,7 +63,7 @@ public final class MemoryPools {
public MemoryPools() {
this.memoryBean = ManagementFactory.getMemoryMXBean();
this.poolBeans = ManagementFactory.getMemoryPoolMXBeans();
this.meter = OpenTelemetry.getMeterProvider().get("jvm_memory");
this.meter = OpenTelemetry.getMeter("jvm_memory");
}
/** Export only the "area" metric. */

View File

@ -51,7 +51,7 @@ public class HelloWorldClient {
// OTel API
Tracer tracer =
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.HelloWorldClient");;
OpenTelemetry.getTracer("io.opentelemetry.example.HelloWorldClient");;
// Export traces as log
LoggingSpanExporter exporter = new LoggingSpanExporter();
// Share context via text headers

View File

@ -54,7 +54,7 @@ public class HelloWorldClientStream {
// OTel API
Tracer tracer =
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.HelloWorldClient");;
OpenTelemetry.getTracer("io.opentelemetry.example.HelloWorldClient");;
// Export traces as log
LoggingSpanExporter exporter = new LoggingSpanExporter();
// Share context via text headers

View File

@ -49,7 +49,7 @@ public class HelloWorldServer {
// OTel API
Tracer tracer =
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.HelloWorldServer");
OpenTelemetry.getTracer("io.opentelemetry.example.HelloWorldServer");
// Export traces as log
LoggingSpanExporter exporter = new LoggingSpanExporter();
// Share context via text

View File

@ -37,7 +37,7 @@ public class HttpClient {
// OTel API
private static Tracer tracer =
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.http.HttpClient");
OpenTelemetry.getTracer("io.opentelemetry.example.http.HttpClient");
// Export traces to log
private static LoggingSpanExporter loggingExporter = new LoggingSpanExporter();
// Inject the span context into the request

View File

@ -28,7 +28,6 @@ import io.opentelemetry.exporters.logging.LoggingSpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.trace.TracerSdkProvider;
import io.opentelemetry.sdk.trace.export.SimpleSpansProcessor;
import io.opentelemetry.trace.*;
import java.io.IOException;
import java.io.OutputStream;
import java.net.InetSocketAddress;
@ -101,7 +100,7 @@ public class HttpServer {
// OTel API
private static Tracer tracer =
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.http.HttpServer");
OpenTelemetry.getTracer("io.opentelemetry.example.http.HttpServer");
// Export traces to log
private static LoggingSpanExporter loggingExporter = new LoggingSpanExporter();
// Extract the context from http headers

View File

@ -16,7 +16,7 @@ public class JaegerExample {
// OTel API
private Tracer tracer =
OpenTelemetry.getTracerProvider().get("io.opentelemetry.example.JaegerExample");
OpenTelemetry.getTracer("io.opentelemetry.example.JaegerExample");
// Export traces to Jaeger
private JaegerGrpcSpanExporter jaegerExporter;

View File

@ -49,8 +49,7 @@ public class JaegerIntegrationTest {
private static final String JAEGER_VERSION = "1.17";
private static final String SERVICE_NAME = "E2E-test";
private static final String JAEGER_URL = "http://localhost";
private final Tracer tracer =
OpenTelemetry.getTracerProvider().get(getClass().getCanonicalName());
private final Tracer tracer = OpenTelemetry.getTracer(getClass().getCanonicalName());
@SuppressWarnings("rawtypes")
@ClassRule

View File

@ -31,7 +31,7 @@ public class TraceShimTest {
@Test
public void createTracerShim_default() {
TracerShim tracerShim = (TracerShim) TraceShim.createTracerShim();
assertEquals(OpenTelemetry.getTracerProvider().get("opentracingshim"), tracerShim.tracer());
assertEquals(OpenTelemetry.getTracer("opentracingshim"), tracerShim.tracer());
assertEquals(OpenTelemetry.getCorrelationContextManager(), tracerShim.contextManager());
}

View File

@ -42,7 +42,7 @@ public class TracerShimTest {
tracerShim =
new TracerShim(
new TelemetryInfo(
OpenTelemetry.getTracerProvider().get("opentracingshim"),
OpenTelemetry.getTracer("opentracingshim"),
OpenTelemetry.getCorrelationContextManager(),
OpenTelemetry.getPropagators()));
}

View File

@ -155,7 +155,7 @@ public final class BatchSpansProcessor implements SpanProcessor {
private static final class Worker implements Runnable {
static {
Meter meter = OpenTelemetry.getMeterProvider().get("io.opentelemetry.sdk.trace");
Meter meter = OpenTelemetry.getMeter("io.opentelemetry.sdk.trace");
LongCounter droppedSpansCounter =
meter
.longCounterBuilder("droppedSpans")