<dependency> <groupId>io.opentelemetry</groupId> <artifactId>opentelemetry-api</artifactId> <version>1.4.0</version> </dependency> <dependency> <groupId>io.opentelemetry</groupId> <artifactId>opentelemetry-sdk</artifactId> <version>1.4.0</version> </dependency> import io.opentelemetry.api.OpenTelemetry; import io.opentelemetry.api.trace.Tracer; import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.sdk.OpenTelemetrySdk; import io.opentelemetry.sdk.trace.SdkTracerProvider; import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; public class InstrumentationExample { private static final Tracer tracer = initTracer(); private static Tracer initTracer() { SdkTracerProvider tracerProvider = SdkTracerProvider.builder().build(); tracerProvider.addSpanProcessor(SimpleSpanProcessor.create(new LoggingExporter())); OpenTelemetrySdk openTelemetrySdk = OpenTelemetrySdk.builder() .setTracerProvider(tracerProvider) .setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance())) .build(); OpenTelemetry.set(openTelemetrySdk); return openTelemetrySdk.getTracer("instrumentation-example"); } } import io.opentelemetry.api.trace.Span; import io.opentelemetry.context.Scope; public class InstrumentedClass { private static final Tracer tracer = OpenTelemetry.getTracer("instrumentation-example"); public void myMethod() { Span span = tracer.spanBuilder("myMethod").startSpan(); try (Scope scope = span.makeCurrent()) { // ... } finally { span.end(); } } } import io.opentelemetry.sdk.trace.export.SpanExporter; public class LoggingExporter implements SpanExporter { @Override public CompletableResultCode export(Collection<SpanData> spans) { for (SpanData span : spans) { System.out.println("Exporting span: " + span); } return CompletableResultCode.ofSuccess(); } }


上一篇:
下一篇:
切换中文