in geronimo-opentracing-common/src/main/java/org/apache/geronimo/microprofile/opentracing/common/microprofile/client/OpenTracingClientRequestFilter.java [62:92]
public void filter(final ClientRequestContext context) {
if (context.getProperty(OpenTracingClientRequestFilter.class.getName()) != null || skip) {
return;
}
final Tracer.SpanBuilder builder = tracer.buildSpan(context.getMethod());
builder.withTag(Tags.SPAN_KIND.getKey(), Tags.SPAN_KIND_CLIENT);
builder.withTag("component", "jaxrs");
ofNullable(SpanContext.class.cast(context.getProperty(CHILD_OF)))
.ifPresent(parent -> builder.ignoreActiveSpan().asChildOf(parent));
final Scope scope = builder.startActive(true);
final Span span = scope.span();
if (!skipDefaultTags) {
Tags.HTTP_METHOD.set(span, context.getMethod());
Tags.HTTP_URL.set(span, context.getUri().toASCIIString());
}
if (!skipPeerTags) {
final String host = context.getUri().getHost();
Tags.PEER_HOSTNAME.set(span, host);
Tags.PEER_PORT.set(span, context.getUri().getPort());
}
// customization point
ofNullable(context.getProperty("org.apache.geronimo.microprofile.opentracing.spanConsumer"))
.ifPresent(consumer -> Consumer.class.cast(consumer).accept(span));
tracer.inject(span.context(), Format.Builtin.HTTP_HEADERS, new JaxRsHeaderTextMap<>(context.getHeaders()));
context.setProperty(OpenTracingClientRequestFilter.class.getName(), scope);
}