Skip to content

Commit

Permalink
add shortcut methods to get tracers and meters (#1159)
Browse files Browse the repository at this point in the history
* 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
  • Loading branch information
zeitlinger authored May 6, 2020
1 parent 19d7e03 commit ebcd508
Show file tree
Hide file tree
Showing 20 changed files with 81 additions and 22 deletions.
4 changes: 2 additions & 2 deletions QUICKSTART.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
61 changes: 61 additions & 0 deletions api/src/main/java/io/opentelemetry/OpenTelemetry.java
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,37 @@ public static TracerProvider getTracerProvider() {
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}.
*
Expand All @@ -86,6 +117,36 @@ public static MeterProvider getMeterProvider() {
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}.
*
Expand Down
2 changes: 1 addition & 1 deletion api/src/test/java/io/opentelemetry/OpenTelemetryTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ public void testTracerSystemProperty() throws IOException {
public void testTracerNotFound() {
System.setProperty(TraceProvider.class.getName(), "io.does.not.exists");
thrown.expect(IllegalStateException.class);
OpenTelemetry.getTracerProvider().get("testTracer");
OpenTelemetry.getTracer("testTracer");
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
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() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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. */
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,6 @@
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;
Expand Down Expand Up @@ -101,7 +100,7 @@ private void answer(HttpExchange he, Span span) throws IOException {

// 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public void setUp() {
tracerShim =
new TracerShim(
new TelemetryInfo(
OpenTelemetry.getTracerProvider().get("opentracingshim"),
OpenTelemetry.getTracer("opentracingshim"),
OpenTelemetry.getCorrelationContextManager(),
OpenTelemetry.getPropagators()));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ public void forceFlush() {
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")
Expand Down

0 comments on commit ebcd508

Please sign in to comment.