<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-api</artifactId>
<version>1.0.0</version>
</dependency>
<dependency>
<groupId>io.opentelemetry</groupId>
<artifactId>opentelemetry-sdk</artifactId>
<version>1.0.0</version>
</dependency>
import io.opentelemetry.api.trace.Span;
import io.opentelemetry.api.trace.Tracer;
import io.opentelemetry.api.trace.SpanContext;
Tracer tracer = OpenTelemetry.getGlobalTracerProvider().get("your-instrumentation-name");
Span span = tracer.spanBuilder("your-span-name").startSpan();
span.log("error occurred");
span.log(Collections.singletonMap("error_code", "500"));
import io.opentelemetry.context.Context;
import io.opentelemetry.context.propagation.ContextPropagators;
import io.opentelemetry.context.propagation.TextMapPropagator;
TextMapPropagator propagator = ContextPropagators.createDefault().getTextMapPropagator();
Context currentContext = Context.current().with(Span.wrap(span));
TextMapCarrier carrier = new TextMapCarrier(request.getHeaders());
propagator.inject(currentContext, carrier);
import io.opentelemetry.context.propagation.ContextPropagators;
import io.opentelemetry.context.propagation.TextMapPropagator;
TextMapPropagator propagator = ContextPropagators.createDefault().getTextMapPropagator();
Context extractedContext = propagator.extract(Context.current(), new TextMapCarrier(request.getHeaders()));
Span receivedSpan = tracer.spanBuilder("received-span").setParent(Context.current().get(Span.class)).startSpan();
yaml
exporter:
jaeger:
endpoint: http://jaeger-collector:14250
service-name: my-service