Tracer tracer = OpenTelemetry.getTracerFactory().get("my-tracer");
tracer.addSpanProcessor(SimpleSpanProcessor.newBuilder(new MySpanExporter()).build());
Span span = tracer.spanBuilder("my-operation").startSpan();
span.addEvent("event-1");
doSomeWork();
span.end();
Runnable task = () -> {
Context parentContext = Context.current();
Context newContext = parentContext.with(span);
Span newSpan = tracer.spanBuilder("other-operation").setParent(newContext).startSpan();
newSpan.addEvent("event-2");
doSomeOtherWork();
newSpan.end();
};
Thread newThread = new Thread(Context.current().wrap(task));
newThread.start();
newThread.join();