From 48c96c584f165470eec8c3f6e4e032c7e1060d38 Mon Sep 17 00:00:00 2001 From: Yashwant Date: Wed, 19 Mar 2025 17:24:58 +0530 Subject: [PATCH 1/2] adding explicit checks for content-type --- .../Servlet30AndFilterInstrumentation.java | 12 ++++++++++++ .../v5_0/Servlet50AndFilterInstrumentation.java | 11 +++++++++++ 2 files changed, 23 insertions(+) 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..7f91cd68 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,18 @@ 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()); + } + currentSpan.setAttribute("http.response.header.testing-hdr", "yash"); 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( From c21f7fcf84779fd7667bca1c81fc40fbd34cab58 Mon Sep 17 00:00:00 2001 From: Yashwant Date: Wed, 19 Mar 2025 17:35:28 +0530 Subject: [PATCH 2/2] nit fix --- .../v3_0/nowrapping/Servlet30AndFilterInstrumentation.java | 1 - 1 file changed, 1 deletion(-) 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 7f91cd68..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 @@ -197,7 +197,6 @@ public static void exit( HypertraceSemanticAttributes.HTTP_RESPONSE_HEADER_CONTENT_ENCODING, httpResponse.getCharacterEncoding()); } - currentSpan.setAttribute("http.response.header.testing-hdr", "yash"); for (String headerName : httpResponse.getHeaderNames()) { String headerValue = httpResponse.getHeader(headerName); currentSpan.setAttribute(