diff --git a/QUICKSTART.md b/QUICKSTART.md index d21dc57dcd9..d122dfaf8f6 100644 --- a/QUICKSTART.md +++ b/QUICKSTART.md @@ -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 diff --git a/api/src/main/java/io/opentelemetry/OpenTelemetry.java b/api/src/main/java/io/opentelemetry/OpenTelemetry.java index 83e9ebfcdb3..328deeae1fa 100644 --- a/api/src/main/java/io/opentelemetry/OpenTelemetry.java +++ b/api/src/main/java/io/opentelemetry/OpenTelemetry.java @@ -74,6 +74,37 @@ public static TracerProvider getTracerProvider() { return getInstance().tracerProvider; } + /** + * Gets or creates a named tracer instance. + * + *

This is a shortcut method for 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. + * @since 0.4.0 + */ + public static Tracer getTracer(String instrumentationName) { + return getTracerProvider().get(instrumentationName); + } + + /** + * Gets or creates a named and versioned tracer instance. + * + *

This is a shortcut method for + * 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., + * "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 static MeterProvider getMeterProvider() { return getInstance().meterProvider; } + /** + * Gets or creates a named meter instance. + * + *

This is a shortcut method for getMeterProvider().get(instrumentationName). + * + * @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. + * + *

This is a shortcut method for + * 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. + * @since 0.4.0 + */ + public static Meter getMeter(String instrumentationName, String instrumentationVersion) { + return getMeterProvider().get(instrumentationName, instrumentationVersion); + } + /** * Returns a singleton {@link CorrelationContextManager}. * diff --git a/api/src/test/java/io/opentelemetry/OpenTelemetryTest.java b/api/src/test/java/io/opentelemetry/OpenTelemetryTest.java index 83d63420cc5..709b4a134f8 100644 --- a/api/src/test/java/io/opentelemetry/OpenTelemetryTest.java +++ b/api/src/test/java/io/opentelemetry/OpenTelemetryTest.java @@ -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 diff --git a/api/src/test/java/io/opentelemetry/metrics/DoubleCounterTest.java b/api/src/test/java/io/opentelemetry/metrics/DoubleCounterTest.java index 239bee2968d..9aeafb4ed3e 100644 --- a/api/src/test/java/io/opentelemetry/metrics/DoubleCounterTest.java +++ b/api/src/test/java/io/opentelemetry/metrics/DoubleCounterTest.java @@ -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() { diff --git a/api/src/test/java/io/opentelemetry/metrics/DoubleObserverTest.java b/api/src/test/java/io/opentelemetry/metrics/DoubleObserverTest.java index a8538f80453..e7339beb2ea 100644 --- a/api/src/test/java/io/opentelemetry/metrics/DoubleObserverTest.java +++ b/api/src/test/java/io/opentelemetry/metrics/DoubleObserverTest.java @@ -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() { diff --git a/api/src/test/java/io/opentelemetry/metrics/LongCounterTest.java b/api/src/test/java/io/opentelemetry/metrics/LongCounterTest.java index eabc7384ded..bf705507a1e 100644 --- a/api/src/test/java/io/opentelemetry/metrics/LongCounterTest.java +++ b/api/src/test/java/io/opentelemetry/metrics/LongCounterTest.java @@ -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() { diff --git a/api/src/test/java/io/opentelemetry/metrics/LongObserverTest.java b/api/src/test/java/io/opentelemetry/metrics/LongObserverTest.java index a40efa60cfe..d753ea6774a 100644 --- a/api/src/test/java/io/opentelemetry/metrics/LongObserverTest.java +++ b/api/src/test/java/io/opentelemetry/metrics/LongObserverTest.java @@ -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() { diff --git a/api/src/test/java/io/opentelemetry/trace/attributes/SemanticAttributesTest.java b/api/src/test/java/io/opentelemetry/trace/attributes/SemanticAttributesTest.java index ebfb362ed28..0f98716e32d 100644 --- a/api/src/test/java/io/opentelemetry/trace/attributes/SemanticAttributesTest.java +++ b/api/src/test/java/io/opentelemetry/trace/attributes/SemanticAttributesTest.java @@ -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(); } diff --git a/contrib/runtime_metrics/src/main/java/io/opentelemetry/contrib/metrics/runtime/GarbageCollector.java b/contrib/runtime_metrics/src/main/java/io/opentelemetry/contrib/metrics/runtime/GarbageCollector.java index f93e73fc05e..3a975f2ed45 100644 --- a/contrib/runtime_metrics/src/main/java/io/opentelemetry/contrib/metrics/runtime/GarbageCollector.java +++ b/contrib/runtime_metrics/src/main/java/io/opentelemetry/contrib/metrics/runtime/GarbageCollector.java @@ -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. */ diff --git a/contrib/runtime_metrics/src/main/java/io/opentelemetry/contrib/metrics/runtime/MemoryPools.java b/contrib/runtime_metrics/src/main/java/io/opentelemetry/contrib/metrics/runtime/MemoryPools.java index 34b22ac6279..08d341643a5 100644 --- a/contrib/runtime_metrics/src/main/java/io/opentelemetry/contrib/metrics/runtime/MemoryPools.java +++ b/contrib/runtime_metrics/src/main/java/io/opentelemetry/contrib/metrics/runtime/MemoryPools.java @@ -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. */ diff --git a/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldClient.java b/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldClient.java index cc46b0bd49b..019ad063c3c 100644 --- a/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldClient.java +++ b/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldClient.java @@ -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 diff --git a/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldClientStream.java b/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldClientStream.java index cf4985fa443..d2db13d06e1 100644 --- a/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldClientStream.java +++ b/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldClientStream.java @@ -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 diff --git a/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldServer.java b/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldServer.java index 55fc1250182..369fd9b1a17 100644 --- a/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldServer.java +++ b/examples/grpc/src/main/java/io/opentelemetry/example/HelloWorldServer.java @@ -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 diff --git a/examples/http/src/main/java/io/opentelemetry/example/http/HttpClient.java b/examples/http/src/main/java/io/opentelemetry/example/http/HttpClient.java index 77d617db70b..d3d7a2c985e 100644 --- a/examples/http/src/main/java/io/opentelemetry/example/http/HttpClient.java +++ b/examples/http/src/main/java/io/opentelemetry/example/http/HttpClient.java @@ -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 diff --git a/examples/http/src/main/java/io/opentelemetry/example/http/HttpServer.java b/examples/http/src/main/java/io/opentelemetry/example/http/HttpServer.java index b89fc23fff9..31295d5503f 100644 --- a/examples/http/src/main/java/io/opentelemetry/example/http/HttpServer.java +++ b/examples/http/src/main/java/io/opentelemetry/example/http/HttpServer.java @@ -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; @@ -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 diff --git a/examples/jaeger/src/main/java/io/opentelemetry/example/JaegerExample.java b/examples/jaeger/src/main/java/io/opentelemetry/example/JaegerExample.java index 5c4467256b1..05e08b648a1 100644 --- a/examples/jaeger/src/main/java/io/opentelemetry/example/JaegerExample.java +++ b/examples/jaeger/src/main/java/io/opentelemetry/example/JaegerExample.java @@ -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; diff --git a/exporters/jaeger/src/test/java/io/opentelemetry/exporters/jaeger/JaegerIntegrationTest.java b/exporters/jaeger/src/test/java/io/opentelemetry/exporters/jaeger/JaegerIntegrationTest.java index 3b915de0a6b..54bc8c4ba0a 100644 --- a/exporters/jaeger/src/test/java/io/opentelemetry/exporters/jaeger/JaegerIntegrationTest.java +++ b/exporters/jaeger/src/test/java/io/opentelemetry/exporters/jaeger/JaegerIntegrationTest.java @@ -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 diff --git a/opentracing_shim/src/test/java/io/opentelemetry/opentracingshim/TraceShimTest.java b/opentracing_shim/src/test/java/io/opentelemetry/opentracingshim/TraceShimTest.java index 90902b40fc8..f7ef37e536b 100644 --- a/opentracing_shim/src/test/java/io/opentelemetry/opentracingshim/TraceShimTest.java +++ b/opentracing_shim/src/test/java/io/opentelemetry/opentracingshim/TraceShimTest.java @@ -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()); } diff --git a/opentracing_shim/src/test/java/io/opentelemetry/opentracingshim/TracerShimTest.java b/opentracing_shim/src/test/java/io/opentelemetry/opentracingshim/TracerShimTest.java index 3ded967b92f..8e8e9ed87e4 100644 --- a/opentracing_shim/src/test/java/io/opentelemetry/opentracingshim/TracerShimTest.java +++ b/opentracing_shim/src/test/java/io/opentelemetry/opentracingshim/TracerShimTest.java @@ -42,7 +42,7 @@ public void setUp() { tracerShim = new TracerShim( new TelemetryInfo( - OpenTelemetry.getTracerProvider().get("opentracingshim"), + OpenTelemetry.getTracer("opentracingshim"), OpenTelemetry.getCorrelationContextManager(), OpenTelemetry.getPropagators())); } diff --git a/sdk/src/main/java/io/opentelemetry/sdk/trace/export/BatchSpansProcessor.java b/sdk/src/main/java/io/opentelemetry/sdk/trace/export/BatchSpansProcessor.java index c64045f8eca..0a70674cf2b 100644 --- a/sdk/src/main/java/io/opentelemetry/sdk/trace/export/BatchSpansProcessor.java +++ b/sdk/src/main/java/io/opentelemetry/sdk/trace/export/BatchSpansProcessor.java @@ -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")