Example updates for 0.15.0 (#2611)
* WIP on updating examples for 0.15.0 * final updates to 0.15.0 * make the getter static
This commit is contained in:
parent
24cfb4acbf
commit
68ee47108a
|
|
@ -13,7 +13,8 @@ subprojects {
|
|||
version = "0.1.0-SNAPSHOT"
|
||||
|
||||
ext {
|
||||
openTelemetryVersion = "0.14.1"
|
||||
openTelemetryVersion = "0.15.0"
|
||||
openTelemetryAlphaVersion = "0.15.0-alpha"
|
||||
grpcVersion = '1.34.1'
|
||||
protobufVersion = '3.11.4'
|
||||
protocVersion = protobufVersion
|
||||
|
|
|
|||
|
|
@ -36,7 +36,7 @@ class ExampleConfiguration {
|
|||
() -> {
|
||||
System.err.println(
|
||||
"*** forcing the Span Exporter to shutdown and process the remaining spans");
|
||||
openTelemetrySdk.getTracerManagement().shutdown();
|
||||
sdkTracerProvider.shutdown();
|
||||
System.err.println("*** Trace Exporter shut down");
|
||||
}));
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import io.opentelemetry.api.OpenTelemetry;
|
|||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.api.trace.StatusCode;
|
||||
import io.opentelemetry.api.trace.Tracer;
|
||||
import io.opentelemetry.api.trace.attributes.SemanticAttributes;
|
||||
import io.opentelemetry.api.trace.propagation.W3CTraceContextPropagator;
|
||||
import io.opentelemetry.context.Context;
|
||||
import io.opentelemetry.context.Scope;
|
||||
|
|
@ -31,6 +30,7 @@ import io.opentelemetry.exporter.logging.LoggingSpanExporter;
|
|||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
||||
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
|
||||
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
|
@ -163,12 +163,11 @@ public class HelloWorldClientStream {
|
|||
}
|
||||
|
||||
private static OpenTelemetry initOpenTelemetry(LoggingSpanExporter exporter) {
|
||||
// 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
|
||||
sdkTracerProvider.addSpanProcessor(SimpleSpanProcessor.builder(exporter).build());
|
||||
SdkTracerProvider sdkTracerProvider =
|
||||
SdkTracerProvider.builder().addSpanProcessor(SimpleSpanProcessor.create(exporter)).build();
|
||||
|
||||
// install the W3C Trace Context propagator
|
||||
return OpenTelemetrySdk.builder()
|
||||
.setTracerProvider(sdkTracerProvider)
|
||||
.setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance()))
|
||||
|
|
|
|||
|
|
@ -34,15 +34,8 @@ public class HelloWorldServer {
|
|||
// lifecycle.
|
||||
private static final OpenTelemetry openTelemetry = ExampleConfiguration.initOpenTelemetry();
|
||||
|
||||
private Server server;
|
||||
|
||||
private final Tracer tracer =
|
||||
openTelemetry.getTracer("io.opentelemetry.example.HelloWorldServer");
|
||||
private final TextMapPropagator textFormat =
|
||||
openTelemetry.getPropagators().getTextMapPropagator();
|
||||
|
||||
// Extract the Distributed Context from the gRPC metadata
|
||||
TextMapPropagator.Getter<Metadata> getter =
|
||||
private static final TextMapPropagator.Getter<Metadata> getter =
|
||||
new TextMapPropagator.Getter<>() {
|
||||
@Override
|
||||
public Iterable<String> keys(Metadata carrier) {
|
||||
|
|
@ -59,6 +52,13 @@ public class HelloWorldServer {
|
|||
}
|
||||
};
|
||||
|
||||
private Server server;
|
||||
|
||||
private final Tracer tracer =
|
||||
openTelemetry.getTracer("io.opentelemetry.example.HelloWorldServer");
|
||||
private final TextMapPropagator textFormat =
|
||||
openTelemetry.getPropagators().getTextMapPropagator();
|
||||
|
||||
private void start() throws IOException {
|
||||
/* The port on which the server should run */
|
||||
|
||||
|
|
|
|||
|
|
@ -7,10 +7,9 @@ ext.moduleName = "io.opentelemetry.examples.http"
|
|||
|
||||
dependencies {
|
||||
compile("io.opentelemetry:opentelemetry-api")
|
||||
compile("io.opentelemetry:opentelemetry-semconv")
|
||||
compile("io.opentelemetry:opentelemetry-semconv:${openTelemetryAlphaVersion}")
|
||||
compile("io.opentelemetry:opentelemetry-sdk")
|
||||
compile("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
|
||||
compile("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:${openTelemetryAlphaVersion}")
|
||||
compile("io.opentelemetry:opentelemetry-exporter-logging")
|
||||
compile "io.grpc:grpc-context"
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,7 +37,7 @@ class ExampleConfiguration {
|
|||
.setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance()))
|
||||
.build();
|
||||
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(() -> sdk.getTracerManagement().shutdown()));
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(sdkTracerProvider::shutdown));
|
||||
return sdk;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,10 +8,13 @@ package io.opentelemetry.example.jaeger;
|
|||
import io.grpc.ManagedChannel;
|
||||
import io.grpc.ManagedChannelBuilder;
|
||||
import io.opentelemetry.api.OpenTelemetry;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.exporter.jaeger.JaegerGrpcSpanExporter;
|
||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
||||
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
|
||||
import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
/**
|
||||
|
|
@ -34,23 +37,24 @@ class ExampleConfiguration {
|
|||
// Export traces to Jaeger
|
||||
JaegerGrpcSpanExporter jaegerExporter =
|
||||
JaegerGrpcSpanExporter.builder()
|
||||
.setServiceName("otel-jaeger-example")
|
||||
.setChannel(jaegerChannel)
|
||||
.setTimeout(30, TimeUnit.SECONDS)
|
||||
.build();
|
||||
|
||||
Resource serviceNameResource =
|
||||
Resource.create(Attributes.of(ResourceAttributes.SERVICE_NAME, "otel-jaeger-example"));
|
||||
|
||||
// Set to process the spans by the Jaeger Exporter
|
||||
OpenTelemetrySdk openTelemetry =
|
||||
OpenTelemetrySdk.builder()
|
||||
.setTracerProvider(
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(SimpleSpanProcessor.create(jaegerExporter))
|
||||
.build())
|
||||
SdkTracerProvider tracerProvider =
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(SimpleSpanProcessor.create(jaegerExporter))
|
||||
.setResource(Resource.getDefault().merge(serviceNameResource))
|
||||
.build();
|
||||
OpenTelemetrySdk openTelemetry =
|
||||
OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).build();
|
||||
|
||||
// it's always a good idea to shut down the SDK cleanly at JVM exit.
|
||||
Runtime.getRuntime()
|
||||
.addShutdownHook(new Thread(() -> openTelemetry.getTracerManagement().shutdown()));
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(tracerProvider::shutdown));
|
||||
|
||||
return openTelemetry;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,5 +7,5 @@ ext.moduleName = "io.opentelemetry.examples.metrics"
|
|||
|
||||
dependencies {
|
||||
compile("io.opentelemetry:opentelemetry-api")
|
||||
compile("io.opentelemetry:opentelemetry-api-metrics:${openTelemetryVersion}-alpha")
|
||||
compile("io.opentelemetry:opentelemetry-api-metrics:${openTelemetryAlphaVersion}")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,9 +3,9 @@ package io.opentelemetry.example.metrics;
|
|||
import io.opentelemetry.api.DefaultOpenTelemetry;
|
||||
import io.opentelemetry.api.OpenTelemetry;
|
||||
import io.opentelemetry.api.common.Labels;
|
||||
import io.opentelemetry.api.metrics.BoundLongCounter;
|
||||
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;
|
||||
import io.opentelemetry.api.trace.Span;
|
||||
import io.opentelemetry.api.trace.Span.Kind;
|
||||
|
|
@ -16,8 +16,7 @@ import java.io.File;
|
|||
import javax.swing.filechooser.FileSystemView;
|
||||
|
||||
/**
|
||||
* Example of using {@link LongCounter} and {@link LongCounter.BoundLongCounter} to count searched
|
||||
* directories.
|
||||
* Example of using {@link LongCounter} and {@link BoundLongCounter} to count searched directories.
|
||||
*/
|
||||
public class LongCounterExample {
|
||||
private static final OpenTelemetry openTelemetry = DefaultOpenTelemetry.builder().build();
|
||||
|
|
|
|||
|
|
@ -9,11 +9,11 @@ dependencies {
|
|||
implementation("io.opentelemetry:opentelemetry-api")
|
||||
implementation("io.opentelemetry:opentelemetry-sdk")
|
||||
implementation("io.opentelemetry:opentelemetry-exporter-otlp")
|
||||
//pull in the autoconfigure extension so we parse the `otel.resource.attributes` system property used in the example.
|
||||
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure")
|
||||
|
||||
implementation("io.opentelemetry:opentelemetry-api-metrics:${openTelemetryVersion}-alpha")
|
||||
implementation("io.opentelemetry:opentelemetry-sdk-metrics:${openTelemetryVersion}-alpha")
|
||||
implementation("io.opentelemetry:opentelemetry-exporter-otlp-metrics:${openTelemetryVersion}-alpha")
|
||||
//pull in the autoconfigure extension so we parse the `otel.resource.attributes` system property used in the example.
|
||||
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure:${openTelemetryAlphaVersion}")
|
||||
implementation("io.opentelemetry:opentelemetry-api-metrics:${openTelemetryAlphaVersion}")
|
||||
implementation("io.opentelemetry:opentelemetry-sdk-metrics:${openTelemetryAlphaVersion}")
|
||||
implementation("io.opentelemetry:opentelemetry-exporter-otlp-metrics:${openTelemetryAlphaVersion}")
|
||||
implementation "io.grpc:grpc-netty-shaded"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,17 +37,15 @@ public class ExampleConfiguration {
|
|||
.setScheduleDelay(100, TimeUnit.MILLISECONDS)
|
||||
.build();
|
||||
|
||||
SdkTracerProvider tracerProvider =
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(spanProcessor)
|
||||
.setResource(Resource.getDefault())
|
||||
.build();
|
||||
OpenTelemetrySdk openTelemetrySdk =
|
||||
OpenTelemetrySdk.builder()
|
||||
.setTracerProvider(
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(spanProcessor)
|
||||
.setResource(Resource.getDefault())
|
||||
.build())
|
||||
.buildAndRegisterGlobal();
|
||||
OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).buildAndRegisterGlobal();
|
||||
|
||||
Runtime.getRuntime()
|
||||
.addShutdownHook(new Thread(() -> openTelemetrySdk.getTracerManagement().shutdown()));
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(tracerProvider::shutdown));
|
||||
|
||||
return openTelemetrySdk;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ ext.moduleName = "io.opentelemetry.examples.prometheus"
|
|||
dependencies {
|
||||
compile("io.opentelemetry:opentelemetry-api")
|
||||
compile("io.opentelemetry:opentelemetry-sdk")
|
||||
compile("io.opentelemetry:opentelemetry-exporter-prometheus")
|
||||
compile("io.opentelemetry:opentelemetry-exporter-prometheus:${openTelemetryAlphaVersion}")
|
||||
compile("io.prometheus:simpleclient:0.8.1")
|
||||
compile("io.prometheus:simpleclient_httpserver:0.8.1")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ package io.opentelemetry.sdk.example;
|
|||
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.SdkTracerProvider;
|
||||
import io.opentelemetry.sdk.trace.SpanProcessor;
|
||||
import io.opentelemetry.sdk.trace.export.BatchSpanProcessor;
|
||||
|
|
@ -21,7 +20,7 @@ public class ConfigureSpanProcessorExample {
|
|||
private static final LoggingSpanExporter exporter = new LoggingSpanExporter();
|
||||
private static final OpenTelemetrySdk openTelemetry = OpenTelemetrySdk.builder().build();
|
||||
// Get the Tracer Management interface
|
||||
private static final SdkTracerManagement tracerManagement = openTelemetry.getTracerManagement();
|
||||
private static final SdkTracerProvider tracerManagement = openTelemetry.getSdkTracerProvider();
|
||||
// Acquire a tracer
|
||||
private static final Tracer tracer = openTelemetry.getTracer("ConfigureSpanProcessorExample");
|
||||
|
||||
|
|
@ -64,7 +63,6 @@ public class ConfigureSpanProcessorExample {
|
|||
// Configure the batch spans processor. This span processor exports span in batches.
|
||||
BatchSpanProcessor batchSpansProcessor =
|
||||
BatchSpanProcessor.builder(exporter)
|
||||
.setExportOnlySampled(true) // send to the exporter only spans that have been sampled
|
||||
.setMaxExportBatchSize(512) // set the maximum batch size to use
|
||||
.setMaxQueueSize(2048) // set the queue size. This must be >= the export batch size
|
||||
.setExporterTimeout(
|
||||
|
|
|
|||
|
|
@ -17,6 +17,7 @@ import io.opentelemetry.sdk.trace.config.TraceConfig;
|
|||
import io.opentelemetry.sdk.trace.data.LinkData;
|
||||
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
|
||||
import io.opentelemetry.sdk.trace.samplers.Sampler;
|
||||
import io.opentelemetry.sdk.trace.samplers.SamplingDecision;
|
||||
import io.opentelemetry.sdk.trace.samplers.SamplingResult;
|
||||
import java.util.List;
|
||||
|
||||
|
|
@ -71,10 +72,7 @@ class ConfigureTraceExample {
|
|||
// - alwaysOn: it samples all traces
|
||||
// - alwaysOff: it rejects all traces
|
||||
// - probability: it samples traces based on the probability passed in input
|
||||
TraceConfig alwaysOff = TraceConfig.builder().setSampler(Sampler.alwaysOff()).build();
|
||||
TraceConfig alwaysOn = TraceConfig.builder().setSampler(Sampler.alwaysOn()).build();
|
||||
TraceConfig probability =
|
||||
TraceConfig.builder().setSampler(Sampler.traceIdRatioBased(0.5)).build();
|
||||
Sampler traceIdRatioBased = Sampler.traceIdRatioBased(0.5);
|
||||
|
||||
// We build an SDK with the alwaysOff sampler.
|
||||
openTelemetrySdk =
|
||||
|
|
@ -82,7 +80,7 @@ class ConfigureTraceExample {
|
|||
.setTracerProvider(
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(SimpleSpanProcessor.create(new LoggingSpanExporter()))
|
||||
.setTraceConfig(alwaysOff)
|
||||
.setSampler(Sampler.alwaysOff())
|
||||
.build())
|
||||
.build();
|
||||
|
||||
|
|
@ -98,7 +96,7 @@ class ConfigureTraceExample {
|
|||
.setTracerProvider(
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(SimpleSpanProcessor.create(new LoggingSpanExporter()))
|
||||
.setTraceConfig(alwaysOn)
|
||||
.setSampler(Sampler.alwaysOn())
|
||||
.build())
|
||||
.build();
|
||||
printTraceConfig(openTelemetrySdk);
|
||||
|
|
@ -115,7 +113,7 @@ class ConfigureTraceExample {
|
|||
.setTracerProvider(
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(SimpleSpanProcessor.create(new LoggingSpanExporter()))
|
||||
.setTraceConfig(probability)
|
||||
.setSampler(traceIdRatioBased)
|
||||
.build())
|
||||
.build();
|
||||
printTraceConfig(openTelemetrySdk);
|
||||
|
|
@ -142,9 +140,7 @@ class ConfigureTraceExample {
|
|||
Attributes attributes,
|
||||
List<LinkData> parentLinks) {
|
||||
return SamplingResult.create(
|
||||
name.contains("SAMPLE")
|
||||
? SamplingResult.Decision.RECORD_AND_SAMPLE
|
||||
: SamplingResult.Decision.DROP);
|
||||
name.contains("SAMPLE") ? SamplingDecision.RECORD_AND_SAMPLE : SamplingDecision.DROP);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -154,13 +150,12 @@ class ConfigureTraceExample {
|
|||
}
|
||||
|
||||
// Add MySampler to the Trace Configuration
|
||||
TraceConfig mySampler = TraceConfig.builder().setSampler(new MySampler()).build();
|
||||
openTelemetrySdk =
|
||||
OpenTelemetrySdk.builder()
|
||||
.setTracerProvider(
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(SimpleSpanProcessor.create(new LoggingSpanExporter()))
|
||||
.setTraceConfig(mySampler)
|
||||
.setSampler(new MySampler())
|
||||
.build())
|
||||
.build();
|
||||
printTraceConfig(openTelemetrySdk);
|
||||
|
|
@ -181,7 +176,7 @@ class ConfigureTraceExample {
|
|||
}
|
||||
|
||||
private static void printTraceConfig(OpenTelemetrySdk sdk) {
|
||||
TraceConfig config = sdk.getTracerManagement().getActiveTraceConfig();
|
||||
TraceConfig config = sdk.getSdkTracerProvider().getActiveTraceConfig();
|
||||
System.err.println("==================================");
|
||||
System.err.print("Max number of attributes: ");
|
||||
System.err.println(config.getMaxNumberOfAttributes());
|
||||
|
|
@ -194,6 +189,6 @@ class ConfigureTraceExample {
|
|||
System.err.print("Max number of links: ");
|
||||
System.err.println(config.getMaxNumberOfLinks());
|
||||
System.err.print("Sampler: ");
|
||||
System.err.println(config.getSampler().getDescription());
|
||||
System.err.println(sdk.getSdkTracerProvider().getSampler().getDescription());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,10 +6,13 @@
|
|||
package io.opentelemetry.example.zipkin;
|
||||
|
||||
import io.opentelemetry.api.OpenTelemetry;
|
||||
import io.opentelemetry.api.common.Attributes;
|
||||
import io.opentelemetry.exporter.zipkin.ZipkinSpanExporter;
|
||||
import io.opentelemetry.sdk.OpenTelemetrySdk;
|
||||
import io.opentelemetry.sdk.resources.Resource;
|
||||
import io.opentelemetry.sdk.trace.SdkTracerProvider;
|
||||
import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor;
|
||||
import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
|
||||
|
||||
/**
|
||||
* All SDK management takes place here, away from the instrumentation code, which should only access
|
||||
|
|
@ -26,23 +29,22 @@ public class ExampleConfiguration {
|
|||
static OpenTelemetry initializeOpenTelemetry(String ip, int port) {
|
||||
String httpUrl = String.format("http://%s:%s", ip, port);
|
||||
ZipkinSpanExporter zipkinExporter =
|
||||
ZipkinSpanExporter.builder()
|
||||
.setEndpoint(httpUrl + ENDPOINT_V2_SPANS)
|
||||
.setServiceName(SERVICE_NAME)
|
||||
.build();
|
||||
ZipkinSpanExporter.builder().setEndpoint(httpUrl + ENDPOINT_V2_SPANS).build();
|
||||
|
||||
Resource serviceNameResource =
|
||||
Resource.create(Attributes.of(ResourceAttributes.SERVICE_NAME, SERVICE_NAME));
|
||||
|
||||
// Set to process the spans by the Zipkin Exporter
|
||||
SdkTracerProvider tracerProvider =
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(SimpleSpanProcessor.create(zipkinExporter))
|
||||
.setResource(Resource.getDefault().merge(serviceNameResource))
|
||||
.build();
|
||||
OpenTelemetrySdk openTelemetry =
|
||||
OpenTelemetrySdk.builder()
|
||||
.setTracerProvider(
|
||||
SdkTracerProvider.builder()
|
||||
.addSpanProcessor(SimpleSpanProcessor.create(zipkinExporter))
|
||||
.build())
|
||||
.buildAndRegisterGlobal();
|
||||
OpenTelemetrySdk.builder().setTracerProvider(tracerProvider).buildAndRegisterGlobal();
|
||||
|
||||
// add a shutdown hook to shut down the SDK
|
||||
Runtime.getRuntime()
|
||||
.addShutdownHook(new Thread(() -> openTelemetry.getTracerManagement().shutdown()));
|
||||
Runtime.getRuntime().addShutdownHook(new Thread(tracerProvider::shutdown));
|
||||
|
||||
// return the configured instance so it can be used for instrumentation.
|
||||
return openTelemetry;
|
||||
|
|
|
|||
Loading…
Reference in New Issue