diff --git a/packages/opentelemetry/src/spanExporter.ts b/packages/opentelemetry/src/spanExporter.ts index f550c4fab7ba..3e72d2a1cc0f 100644 --- a/packages/opentelemetry/src/spanExporter.ts +++ b/packages/opentelemetry/src/spanExporter.ts @@ -453,6 +453,9 @@ function getData(span: ReadableSpan): Record { data.url = requestData.url; } + // TODO(v11): emit `url.query`/`url.fragment` (OTel-standard, no leading `?`/`#`) and drop + // this stripping + the `http.query`/`http.fragment` attributes. `http.query` is actually specced to + // keep the leading `?`, so stripping diverges from our own conventions; `url.query` sidesteps it. if (requestData['http.query']) { data['http.query'] = requestData['http.query'].slice(1); } diff --git a/packages/opentelemetry/src/utils/parseSpanDescription.ts b/packages/opentelemetry/src/utils/parseSpanDescription.ts index ca1c1e6c6ebf..821803103cdf 100644 --- a/packages/opentelemetry/src/utils/parseSpanDescription.ts +++ b/packages/opentelemetry/src/utils/parseSpanDescription.ts @@ -185,6 +185,8 @@ export function descriptionForHttpMethod( if (query) { // Strip the leading `?`/`#` (the `URL.search`/`URL.hash` prefix) so the attribute matches the // canonical format the OTel SDK exporter emits (`getData` in `spanExporter.ts` slices these too). + // TODO(v11): emit `url.query`/`url.fragment` (OTel-standard, no leading `?`/`#`) and drop + // this stripping + `http.query`/`http.fragment`; `http.query` is specced to keep the leading `?`. data['http.query'] = query.slice(1); } if (fragment) {