From db1eb3b985d535b7a67cbec0276196a5402287af Mon Sep 17 00:00:00 2001 From: William Poteat Date: Mon, 19 Aug 2024 15:48:39 -0400 Subject: [PATCH] Add traceresponse header to HTTP responses https://github.com/quarkusio/quarkus/issues/11931 --- .../resteasy/TraceResponseFilter.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/intrumentation/resteasy/TraceResponseFilter.java diff --git a/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/intrumentation/resteasy/TraceResponseFilter.java b/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/intrumentation/resteasy/TraceResponseFilter.java new file mode 100644 index 0000000000000..dd3a229b065b3 --- /dev/null +++ b/extensions/opentelemetry/runtime/src/main/java/io/quarkus/opentelemetry/runtime/tracing/intrumentation/resteasy/TraceResponseFilter.java @@ -0,0 +1,22 @@ +package io.quarkus.opentelemetry.runtime.tracing.intrumentation.resteasy; + +import org.jboss.resteasy.reactive.server.ServerResponseFilter; + +import io.opentelemetry.api.trace.Span; +import io.opentelemetry.api.trace.SpanContext; +import jakarta.ws.rs.container.ContainerResponseContext; + +public class TraceResponseFilter { + + @ServerResponseFilter + public void responseBasicHeaderFilter(ContainerResponseContext responseContext) { + SpanContext spanContext = Span.current().getSpanContext(); + responseContext + .getHeaders() + .putSingle( + "traceresponse", + String.format( + "00-%s-%s-%s ", + spanContext.getTraceId(), spanContext.getSpanId(), spanContext.getTraceFlags())); + } +}