From 89420b9581e19fd0380a98d67419f8142b0594e1 Mon Sep 17 00:00:00 2001 From: Kev <6111995+k-fish@users.noreply.github.com> Date: Tue, 16 May 2023 12:08:05 -0400 Subject: [PATCH 1/2] fix(tracing): Change where content-length gets added Response content length can't be added upon span creation since the response doesn't exist yet, this should add content-length on the subsequent call to the handler after the fetch/xhr has finished. --- packages/tracing-internal/src/browser/request.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/tracing-internal/src/browser/request.ts b/packages/tracing-internal/src/browser/request.ts index 94587c0380b1..b5d72babc8bb 100644 --- a/packages/tracing-internal/src/browser/request.ts +++ b/packages/tracing-internal/src/browser/request.ts @@ -175,6 +175,13 @@ export function fetchCallback( // TODO (kmclb) remove this once types PR goes through // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access span.setHttpStatus(handlerData.response.status); + + const contentLength = + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + handlerData.response && handlerData.response.headers && handlerData.response.headers.get('content-length'); + if (contentLength > 0) { + span.setData('http.response_content_length', contentLength); + } } else if (handlerData.error) { span.setStatus('internal_error'); } @@ -186,9 +193,6 @@ export function fetchCallback( return; } - const contentLength = - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access - handlerData.response && handlerData.response.headers && handlerData.response.headers.get('content-length'); const currentScope = getCurrentHub().getScope(); const currentSpan = currentScope && currentScope.getSpan(); const activeTransaction = currentSpan && currentSpan.transaction; @@ -199,7 +203,6 @@ export function fetchCallback( data: { url, type: 'fetch', - ...(contentLength ? { 'http.response_content_length': contentLength } : {}), 'http.method': method, }, description: `${method} ${url}`, From a1a3f1454ad2ba415d4c8ec768b1ea243705b899 Mon Sep 17 00:00:00 2001 From: Abhijeet Prasad Date: Wed, 17 May 2023 13:20:36 +0200 Subject: [PATCH 2/2] prettier --- packages/tracing-internal/src/browser/request.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tracing-internal/src/browser/request.ts b/packages/tracing-internal/src/browser/request.ts index b5d72babc8bb..d4d2edd21b85 100644 --- a/packages/tracing-internal/src/browser/request.ts +++ b/packages/tracing-internal/src/browser/request.ts @@ -175,9 +175,9 @@ export function fetchCallback( // TODO (kmclb) remove this once types PR goes through // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access span.setHttpStatus(handlerData.response.status); - + const contentLength = - // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access handlerData.response && handlerData.response.headers && handlerData.response.headers.get('content-length'); if (contentLength > 0) { span.setData('http.response_content_length', contentLength);