update the examples for 0.13.1 (#2360)

This commit is contained in:
John Watson 2020-12-18 10:03:27 -08:00 committed by GitHub
parent 0412d47ffe
commit ba90083780
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 85 additions and 62 deletions

View File

@ -13,7 +13,7 @@ subprojects {
version = "0.1.0-SNAPSHOT"
ext {
opentelemetryVersion = "0.12.0"
opentelemetryVersion = "0.13.1"
grpcVersion = '1.30.2'
protobufVersion = '3.11.4'
protocVersion = protobufVersion

View File

@ -16,6 +16,7 @@ import io.grpc.ManagedChannelBuilder;
import io.grpc.Metadata;
import io.grpc.MethodDescriptor;
import io.grpc.StatusRuntimeException;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.StatusCode;
@ -27,7 +28,7 @@ import io.opentelemetry.context.propagation.ContextPropagators;
import io.opentelemetry.context.propagation.TextMapPropagator;
import io.opentelemetry.exporter.logging.LoggingSpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.trace.TracerSdkManagement;
import io.opentelemetry.sdk.trace.SdkTracerProvider;
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;
@ -40,7 +41,7 @@ public class HelloWorldClient {
private final Integer serverPort;
private final GreeterGrpc.GreeterBlockingStub blockingStub;
OpenTelemetry openTelemetry = OpenTelemetry.get();
OpenTelemetry openTelemetry = GlobalOpenTelemetry.get();
// OTel API
Tracer tracer = openTelemetry.getTracer("io.opentelemetry.example.HelloWorldClient");
// Share context via text headers
@ -116,14 +117,20 @@ public class HelloWorldClient {
}
private static void initTracing() {
OpenTelemetry.setGlobalPropagators(
ContextPropagators.create(W3CTraceContextPropagator.getInstance()));
// Use the OpenTelemetry SDK
// install the W3C Trace Context propagator
// Get the tracer management instance
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder().build();
// Set to process the the spans by the LogExporter
LoggingSpanExporter exporter = new LoggingSpanExporter();
TracerSdkManagement tracerProvider = OpenTelemetrySdk.getGlobalTracerManagement();
// Set to process the spans by the log exporter
tracerProvider.addSpanProcessor(SimpleSpanProcessor.builder(exporter).build());
sdkTracerProvider.addSpanProcessor(SimpleSpanProcessor.builder(exporter).build());
OpenTelemetrySdk openTelemetrySdk =
OpenTelemetrySdk.builder()
.setTracerProvider(sdkTracerProvider)
.setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance()))
.build();
GlobalOpenTelemetry.set(openTelemetrySdk);
}
/**

View File

@ -17,7 +17,7 @@ import io.grpc.Metadata;
import io.grpc.MethodDescriptor;
import io.grpc.StatusRuntimeException;
import io.grpc.stub.StreamObserver;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.StatusCode;
import io.opentelemetry.api.trace.Tracer;
@ -26,7 +26,7 @@ import io.opentelemetry.context.Scope;
import io.opentelemetry.context.propagation.TextMapPropagator;
import io.opentelemetry.exporter.logging.LoggingSpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.trace.TracerSdkManagement;
import io.opentelemetry.sdk.trace.SdkTracerManagement;
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
import java.util.Arrays;
import java.util.List;
@ -42,11 +42,11 @@ public class HelloWorldClientStream {
private final GreeterGrpc.GreeterStub asyncStub;
// OTel API
Tracer tracer = OpenTelemetry.getGlobalTracer("io.opentelemetry.example.HelloWorldClient");
Tracer tracer = GlobalOpenTelemetry.getTracer("io.opentelemetry.example.HelloWorldClient");
// Export traces as log
LoggingSpanExporter exporter = new LoggingSpanExporter();
// Share context via text headers
TextMapPropagator textFormat = OpenTelemetry.getGlobalPropagators().getTextMapPropagator();
TextMapPropagator textFormat = GlobalOpenTelemetry.getPropagators().getTextMapPropagator();
// Inject context into the gRPC request metadata
TextMapPropagator.Setter<Metadata> setter =
(carrier, key, value) ->
@ -71,7 +71,7 @@ public class HelloWorldClientStream {
private void initTracer() {
// Use the OpenTelemetry SDK
TracerSdkManagement tracerManagement = OpenTelemetrySdk.getGlobalTracerManagement();
SdkTracerManagement tracerManagement = OpenTelemetrySdk.getGlobalTracerManagement();
// Set to process the spans by the log exporter
tracerManagement.addSpanProcessor(SimpleSpanProcessor.builder(exporter).build());
}

View File

@ -14,6 +14,7 @@ import io.grpc.ServerBuilder;
import io.grpc.ServerCall;
import io.grpc.ServerCallHandler;
import io.grpc.stub.StreamObserver;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Tracer;
@ -24,7 +25,7 @@ import io.opentelemetry.context.propagation.ContextPropagators;
import io.opentelemetry.context.propagation.TextMapPropagator;
import io.opentelemetry.exporter.logging.LoggingSpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.trace.TracerSdkManagement;
import io.opentelemetry.sdk.trace.SdkTracerProvider;
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
import java.io.IOException;
import java.net.InetSocketAddress;
@ -38,7 +39,7 @@ public class HelloWorldServer {
private Server server;
private final OpenTelemetry openTelemetry = OpenTelemetry.get();
private final OpenTelemetry openTelemetry = GlobalOpenTelemetry.get();
private final Tracer tracer =
openTelemetry.getTracer("io.opentelemetry.example.HelloWorldServer");
private final TextMapPropagator textFormat =
@ -167,12 +168,18 @@ public class HelloWorldServer {
private static void initTracing() {
// install the W3C Trace Context propagator
OpenTelemetry.setGlobalPropagators(
ContextPropagators.create(W3CTraceContextPropagator.getInstance()));
// Get the tracer management instance
TracerSdkManagement tracerManagement = OpenTelemetrySdk.getGlobalTracerManagement();
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder().build();
// Set to process the the spans by the LogExporter
tracerManagement.addSpanProcessor(SimpleSpanProcessor.builder(exporter).build());
sdkTracerProvider.addSpanProcessor(SimpleSpanProcessor.builder(exporter).build());
OpenTelemetrySdk openTelemetrySdk =
OpenTelemetrySdk.builder()
.setTracerProvider(sdkTracerProvider)
.setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance()))
.build();
GlobalOpenTelemetry.set(openTelemetrySdk);
}
/** Main launches the server from the command line. */

View File

@ -5,6 +5,7 @@
package io.opentelemetry.example.http;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.StatusCode;
@ -16,7 +17,7 @@ import io.opentelemetry.context.propagation.ContextPropagators;
import io.opentelemetry.context.propagation.TextMapPropagator;
import io.opentelemetry.exporter.logging.LoggingSpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.trace.TracerSdkManagement;
import io.opentelemetry.sdk.trace.SdkTracerProvider;
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
import java.io.BufferedReader;
import java.io.IOException;
@ -39,15 +40,18 @@ public class HttpClient {
private static void initTracing() {
// install the W3C Trace Context propagator
OpenTelemetry.setGlobalPropagators(
ContextPropagators.create(W3CTraceContextPropagator.getInstance()));
// Get the tracer management instance
SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder().build();
// Set to process the the spans by the LogExporter
sdkTracerProvider.addSpanProcessor(SimpleSpanProcessor.builder(loggingExporter).build());
// Get the tracer management instance.
TracerSdkManagement tracerManagement = OpenTelemetrySdk.getGlobalTracerManagement();
// Show that multiple exporters can be used
OpenTelemetrySdk openTelemetrySdk =
OpenTelemetrySdk.builder()
.setTracerProvider(sdkTracerProvider)
.setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance()))
.build();
// Set to export the traces also to a log file
tracerManagement.addSpanProcessor(SimpleSpanProcessor.builder(loggingExporter).build());
GlobalOpenTelemetry.set(openTelemetrySdk);
}
private void makeRequest() throws IOException {
@ -75,7 +79,7 @@ public class HttpClient {
span.setAttribute("http.url", url.toString());
// Inject the request with the current Context/Span.
OpenTelemetry.getGlobalPropagators()
GlobalOpenTelemetry.getPropagators()
.getTextMapPropagator()
.inject(Context.current(), con, setter);

View File

@ -20,7 +20,7 @@ import io.opentelemetry.context.propagation.ContextPropagators;
import io.opentelemetry.context.propagation.TextMapPropagator;
import io.opentelemetry.exporter.logging.LoggingSpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.trace.TracerSdkManagement;
import io.opentelemetry.sdk.trace.SdkTracerManagement;
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
import java.io.IOException;
import java.io.OutputStream;
@ -125,7 +125,7 @@ public class HttpServer {
ContextPropagators.create(W3CTraceContextPropagator.getInstance()));
// Get the tracer
TracerSdkManagement tracerManagement = OpenTelemetrySdk.getGlobalTracerManagement();
SdkTracerManagement tracerManagement = OpenTelemetrySdk.getGlobalTracerManagement();
// Show that multiple exporters can be used
// Set to export the traces also to a log file

View File

@ -1,8 +1,9 @@
package io.opentelemetry.example.metrics;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.common.Labels;
import io.opentelemetry.api.metrics.DoubleCounter;
import io.opentelemetry.api.metrics.GlobalMetricsProvider;
import io.opentelemetry.api.metrics.Meter;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Span.Kind;
@ -21,9 +22,9 @@ import javax.swing.filechooser.FileSystemView;
public class DoubleCounterExample {
private static final Tracer tracer =
OpenTelemetry.getGlobalTracer("io.opentelemetry.example.metrics", "0.5");
GlobalOpenTelemetry.getTracer("io.opentelemetry.example.metrics", "0.5");
private static final Meter sampleMeter =
OpenTelemetry.getGlobalMeterProvider().get("io.opentelemetry.example.metrics", "0.5");
GlobalMetricsProvider.get().get("io.opentelemetry.example.metrics", "0.5");
private static final File directoryToCountIn =
FileSystemView.getFileSystemView().getHomeDirectory();
private static final DoubleCounter diskSpaceCounter =

View File

@ -1,7 +1,8 @@
package io.opentelemetry.example.metrics;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.common.Labels;
import io.opentelemetry.api.metrics.GlobalMetricsProvider;
import io.opentelemetry.api.metrics.LongCounter;
import io.opentelemetry.api.metrics.LongCounter.BoundLongCounter;
import io.opentelemetry.api.metrics.Meter;
@ -20,9 +21,9 @@ import javax.swing.filechooser.FileSystemView;
public class LongCounterExample {
private static final Tracer tracer =
OpenTelemetry.getGlobalTracer("io.opentelemetry.example.metrics", "0.5");
GlobalOpenTelemetry.getTracer("io.opentelemetry.example.metrics", "0.5");
private static final Meter sampleMeter =
OpenTelemetry.getGlobalMeterProvider().get("io.opentelemetry.example.metrics", "0.5");
GlobalMetricsProvider.getMeter("io.opentelemetry.example.metrics", "0.5");
private static final LongCounter directoryCounter =
sampleMeter
.longCounterBuilder("directories_search_count")

View File

@ -6,9 +6,9 @@ import io.opentelemetry.api.metrics.LongValueObserver;
import io.opentelemetry.api.metrics.Meter;
/**
* Example of using {@link LongValueObserver} to measure execution time of method. Setting {@link
* LongValueObserver.Callback} a callback that gets executed every collection interval. Useful for
* expensive measurements that would be wastefully to calculate each request.
* Example of using {@link LongValueObserver} to measure execution time of method. Setting the
* {@link LongValueObserver} updater sets a callback that gets executed every collection interval.
* Useful for expensive measurements that would be wastefully to calculate each request.
*/
public class LongValueObserverExample {
@ -19,7 +19,7 @@ public class LongValueObserverExample {
.longValueObserverBuilder("jvm.memory.total")
.setDescription("Reports JVM memory usage.")
.setUnit("byte")
.setCallback(
.setUpdater(
result -> result.observe(Runtime.getRuntime().totalMemory(), Labels.empty()))
.build();
}

View File

@ -9,5 +9,6 @@ dependencies {
compile("io.opentelemetry:opentelemetry-api")
compile("io.opentelemetry:opentelemetry-sdk")
compile("io.opentelemetry:opentelemetry-exporter-otlp")
compile("io.opentelemetry:opentelemetry-exporter-otlp-metrics:0.13.1-alpha")
compile "io.grpc:grpc-netty-shaded"
}

View File

@ -11,8 +11,8 @@ import io.opentelemetry.api.metrics.Meter;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.context.Scope;
import io.opentelemetry.exporter.otlp.OtlpGrpcMetricExporter;
import io.opentelemetry.exporter.otlp.OtlpGrpcSpanExporter;
import io.opentelemetry.exporter.otlp.metrics.OtlpGrpcMetricExporter;
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.metrics.export.IntervalMetricReader;
import io.opentelemetry.sdk.trace.export.BatchSpanProcessor;

View File

@ -1,11 +1,12 @@
package io.opentelemetry.example.prometheus;
import io.opentelemetry.api.common.Labels;
import io.opentelemetry.api.metrics.GlobalMetricsProvider;
import io.opentelemetry.api.metrics.LongValueObserver;
import io.opentelemetry.api.metrics.Meter;
import io.opentelemetry.api.metrics.MeterProvider;
import io.opentelemetry.exporter.prometheus.PrometheusCollector;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.metrics.MeterSdkProvider;
import io.opentelemetry.sdk.metrics.SdkMeterProvider;
import io.prometheus.client.exporter.HTTPServer;
import java.io.IOException;
import java.util.concurrent.ThreadLocalRandom;
@ -15,12 +16,12 @@ import java.util.concurrent.ThreadLocalRandom;
* expose these to a Prometheus instance via a {@link HTTPServer} exporter.
*
* <p>A {@link LongValueObserver} is used to periodically measure how many incoming messages are
* awaiting processing. The {@link LongValueObserver.Callback} gets executed every collection
* awaiting processing. The {@link LongValueObserver} Updater gets executed every collection
* interval.
*/
public class PrometheusExample {
private final MeterSdkProvider meterSdkProvider = OpenTelemetrySdk.getGlobalMeterProvider();
private final MeterProvider meterSdkProvider = GlobalMetricsProvider.get();
private final Meter meter = meterSdkProvider.get("PrometheusExample", "0.7");
private final HTTPServer server;
private long incomingMessageCount;
@ -32,11 +33,11 @@ public class PrometheusExample {
.longValueObserverBuilder("incoming.messages")
.setDescription("No of incoming messages awaiting processing")
.setUnit("message")
.setCallback(result -> result.observe(incomingMessageCount, Labels.empty()))
.setUpdater(result -> result.observe(incomingMessageCount, Labels.empty()))
.build();
PrometheusCollector.builder()
.setMetricProducer(meterSdkProvider.getMetricProducer())
.setMetricProducer(((SdkMeterProvider) meterSdkProvider).getMetricProducer())
.buildAndRegister();
server = new HTTPServer(port);

View File

@ -5,12 +5,12 @@
package io.opentelemetry.sdk.example;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.exporter.logging.LoggingSpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.trace.SdkTracerManagement;
import io.opentelemetry.sdk.trace.SpanProcessor;
import io.opentelemetry.sdk.trace.TracerSdkManagement;
import io.opentelemetry.sdk.trace.export.BatchSpanProcessor;
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
@ -20,9 +20,9 @@ public class ConfigureSpanProcessorExample {
static LoggingSpanExporter exporter = new LoggingSpanExporter();
// Get the Tracer Provider
static TracerSdkManagement tracerProvider = OpenTelemetrySdk.getGlobalTracerManagement();
static SdkTracerManagement tracerProvider = OpenTelemetrySdk.getGlobalTracerManagement();
// Acquire a tracer
static Tracer tracer = OpenTelemetry.getGlobalTracer("ConfigureSpanProcessorExample");
static Tracer tracer = GlobalOpenTelemetry.getTracer("ConfigureSpanProcessorExample");
public static void main(String[] args) {

View File

@ -5,7 +5,7 @@
package io.opentelemetry.sdk.example;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.common.Attributes;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Span.Kind;
@ -13,7 +13,7 @@ import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.context.Context;
import io.opentelemetry.exporter.logging.LoggingSpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.trace.TracerSdkManagement;
import io.opentelemetry.sdk.trace.SdkTracerManagement;
import io.opentelemetry.sdk.trace.config.TraceConfig;
import io.opentelemetry.sdk.trace.data.SpanData.Link;
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
@ -24,8 +24,8 @@ import java.util.List;
class ConfigureTraceExample {
// Configure a tracer for these examples
static TracerSdkManagement tracerManagement = OpenTelemetrySdk.getGlobalTracerManagement();
static Tracer tracer = OpenTelemetry.getGlobalTracer("ConfigureTraceExample");
static SdkTracerManagement tracerManagement = OpenTelemetrySdk.getGlobalTracerManagement();
static Tracer tracer = GlobalOpenTelemetry.getTracer("ConfigureTraceExample");
static {
tracerManagement.addSpanProcessor(

View File

@ -1,6 +1,6 @@
package io.opentelemetry.example.zipkin;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.GlobalOpenTelemetry;
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter;
@ -20,8 +20,8 @@ public class ZipkinExample {
// Name of the service
private static final String SERVICE_NAME = "myExampleService";
private Tracer tracer = OpenTelemetry.getGlobalTracer("io.opentelemetry.example.ZipkinExample");
private ZipkinSpanExporter zipkinExporter;
private final Tracer tracer =
GlobalOpenTelemetry.getTracer("io.opentelemetry.example.ZipkinExample");
public ZipkinExample(String ip, int port) {
this.ip = ip;
@ -32,7 +32,7 @@ public class ZipkinExample {
// TracerSdkProvider
public void setupZipkinExporter() {
String httpUrl = String.format("http://%s:%s", ip, port);
this.zipkinExporter =
ZipkinSpanExporter zipkinExporter =
ZipkinSpanExporter.builder()
.setEndpoint(httpUrl + ENDPOINT_V2_SPANS)
.setServiceName(SERVICE_NAME)
@ -60,6 +60,7 @@ public class ZipkinExample {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
// ignore in an example
}
}