<dependencies>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-exporter-otlp</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.context.propagation.ContextPropagators;
import io.opentelemetry.exporter.otlp.trace.OtlpGrpcSpanExporter;
import io.opentelemetry.sdk.OpenTelemetrySdk;
import io.opentelemetry.sdk.trace.export.BatchSpanProcessor;
public class MyApp {
public static void main(String[] args) {
OtlpGrpcSpanExporter otlpExporter =
OtlpGrpcSpanExporter.builder().setEndpoint("your-opentelemetry-endpoint").build();
BatchSpanProcessor spanProcessor =
BatchSpanProcessor.builder(otlpExporter).build();
OpenTelemetry openTelemetry =
OpenTelemetrySdk.builder()
.setTracerProvider(
SdkTracerProvider.builder()
.addSpanProcessor(spanProcessor)
.build())
.setPropagators(ContextPropagators.create(W3CTraceContextPropagator.getInstance()))
.build();
Tracer tracer = openTelemetry.getTracerProvider().get("myapp");
// ...
}
}
import io.opentelemetry.context.Scope;
import io.opentelemetry.trace.Span;
public class MyClass {
public void myMethod() {
Tracer tracer = openTelemetry.getTracerProvider().get("myapp");
Span span = tracer.spanBuilder("my_method").startSpan();
try (Scope ignored = span.makeCurrent()) {
// ...
} finally {
span.end();
}
}
}