diff --git a/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java b/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java index 6d5b6b25..63f2e7e4 100644 --- a/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java +++ b/instrumentation/servlet/servlet-3.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v3_0/nowrapping/Servlet30AndFilterInstrumentation.java @@ -186,6 +186,17 @@ public static void exit( if (throwable == null && !httpResponse.isCommitted()) { httpResponse.flushBuffer(); } + if (httpResponse.getContentType() != null && !httpResponse.getContentType().isEmpty()) { + currentSpan.setAttribute( + HypertraceSemanticAttributes.HTTP_RESPONSE_HEADER_CONTENT_TYPE, + httpResponse.getContentType()); + } + if (httpResponse.getCharacterEncoding() != null + && !httpResponse.getCharacterEncoding().isEmpty()) { + currentSpan.setAttribute( + HypertraceSemanticAttributes.HTTP_RESPONSE_HEADER_CONTENT_ENCODING, + httpResponse.getCharacterEncoding()); + } for (String headerName : httpResponse.getHeaderNames()) { String headerValue = httpResponse.getHeader(headerName); currentSpan.setAttribute( diff --git a/instrumentation/servlet/servlet-5.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v5_0/Servlet50AndFilterInstrumentation.java b/instrumentation/servlet/servlet-5.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v5_0/Servlet50AndFilterInstrumentation.java index 58945054..f6532596 100644 --- a/instrumentation/servlet/servlet-5.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v5_0/Servlet50AndFilterInstrumentation.java +++ b/instrumentation/servlet/servlet-5.0/src/main/java/io/opentelemetry/javaagent/instrumentation/hypertrace/servlet/v5_0/Servlet50AndFilterInstrumentation.java @@ -190,6 +190,17 @@ public static void exit( if (throwable == null && !httpResponse.isCommitted()) { httpResponse.flushBuffer(); } + if (httpResponse.getContentType() != null && !httpResponse.getContentType().isEmpty()) { + currentSpan.setAttribute( + HypertraceSemanticAttributes.HTTP_RESPONSE_HEADER_CONTENT_TYPE, + httpResponse.getContentType()); + } + if (httpResponse.getCharacterEncoding() != null + && !httpResponse.getCharacterEncoding().isEmpty()) { + currentSpan.setAttribute( + HypertraceSemanticAttributes.HTTP_RESPONSE_HEADER_CONTENT_ENCODING, + httpResponse.getCharacterEncoding()); + } for (String headerName : httpResponse.getHeaderNames()) { String headerValue = httpResponse.getHeader(headerName); currentSpan.setAttribute(