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