From 82dc1bbe0fe6fa4a43d56774edab51bc3f8da03b Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Fri, 10 Jul 2026 11:31:28 +0200 Subject: [PATCH 1/2] feat(attributes): Add `aws.request.url` (deprecated) in favor of `url.full` Co-Authored-By: Claude Opus 4.6 --- .../sentry-conventions/src/attributes.ts | 53 +++++++++++++++++-- model/attributes/aws/aws__request__url.json | 23 ++++++++ model/attributes/url/url__full.json | 6 ++- python/src/sentry_conventions/attributes.py | 42 ++++++++++++++- 4 files changed, 118 insertions(+), 6 deletions(-) create mode 100644 model/attributes/aws/aws__request__url.json diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 041ac192..25fbfbc9 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -1882,6 +1882,30 @@ export const AWS_LOG_STREAM_NAMES = 'aws.log.stream.names'; */ export type AWS_LOG_STREAM_NAMES_TYPE = Array; +// Path: model/attributes/aws/aws__request__url.json + +/** + * The URL of the AWS API request. `aws.request.url` + * + * Attribute Value Type: `string` {@link AWS_REQUEST_URL_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * Aliases: {@link URL_FULL} `url.full` + * + * @deprecated Use {@link URL_FULL} (url.full) instead - This attribute is being deprecated in favor of url.full, which is the OTel-aligned replacement. + * @example "https://sqs.us-east-1.amazonaws.com/123456789/my-queue" + */ +export const AWS_REQUEST_URL = 'aws.request.url'; + +/** + * Type for {@link AWS_REQUEST_URL} aws.request.url + */ +export type AWS_REQUEST_URL_TYPE = string; + // Path: model/attributes/blocked_main_thread.json /** @@ -13745,7 +13769,7 @@ export type URL_FRAGMENT_TYPE = string; * Attribute defined in OTEL: Yes * Visibility: public * - * Aliases: {@link HTTP_URL} `http.url`, {@link URL} `url` + * Aliases: {@link HTTP_URL} `http.url`, {@link URL} `url`, {@link AWS_REQUEST_URL} `aws.request.url` * * @example "https://example.com/test?foo=bar#buzz" */ @@ -15087,6 +15111,7 @@ export const ATTRIBUTE_TYPE: Record = { 'aws.lambda.remaining_time_in_millis': 'double', 'aws.log.group.names': 'string[]', 'aws.log.stream.names': 'string[]', + 'aws.request.url': 'string', blocked_main_thread: 'boolean', 'browser.name': 'string', 'browser.performance.navigation.activation_start': 'double', @@ -15769,6 +15794,7 @@ export type AttributeName = | typeof AWS_LAMBDA_REMAINING_TIME_IN_MILLIS | typeof AWS_LOG_GROUP_NAMES | typeof AWS_LOG_STREAM_NAMES + | typeof AWS_REQUEST_URL | typeof BLOCKED_MAIN_THREAD | typeof BROWSER_NAME | typeof BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START @@ -17587,6 +17613,22 @@ export const ATTRIBUTE_METADATA: Record = { example: ['logs/main/10838bed-421f-43ef-870a-f43feacbbb5b'], changelog: [{ version: '0.11.1', prs: [414] }], }, + 'aws.request.url': { + brief: 'The URL of the AWS API request.', + type: 'string', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: 'https://sqs.us-east-1.amazonaws.com/123456789/my-queue', + deprecation: { + replacement: 'url.full', + reason: 'This attribute is being deprecated in favor of url.full, which is the OTel-aligned replacement.', + }, + aliases: ['url.full'], + changelog: [{ version: 'next', description: 'Added aws.request.url attribute, deprecated in favor of url.full' }], + }, blocked_main_thread: { brief: 'Whether the main thread was blocked by the span.', type: 'boolean', @@ -24742,8 +24784,12 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, visibility: 'public', example: 'https://example.com/test?foo=bar#buzz', - aliases: ['http.url', 'url'], - changelog: [{ version: '0.1.0', prs: [108] }, { version: '0.0.0' }], + aliases: ['http.url', 'url', 'aws.request.url'], + changelog: [ + { version: 'next', description: 'Added aws.request.url as an alias' }, + { version: '0.1.0', prs: [108] }, + { version: '0.0.0' }, + ], }, 'url.path': { brief: 'The URI path component.', @@ -25479,6 +25525,7 @@ export type Attributes = { [AWS_LAMBDA_REMAINING_TIME_IN_MILLIS]?: AWS_LAMBDA_REMAINING_TIME_IN_MILLIS_TYPE; [AWS_LOG_GROUP_NAMES]?: AWS_LOG_GROUP_NAMES_TYPE; [AWS_LOG_STREAM_NAMES]?: AWS_LOG_STREAM_NAMES_TYPE; + [AWS_REQUEST_URL]?: AWS_REQUEST_URL_TYPE; [BLOCKED_MAIN_THREAD]?: BLOCKED_MAIN_THREAD_TYPE; [BROWSER_NAME]?: BROWSER_NAME_TYPE; [BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START]?: BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START_TYPE; diff --git a/model/attributes/aws/aws__request__url.json b/model/attributes/aws/aws__request__url.json new file mode 100644 index 00000000..5ddd979f --- /dev/null +++ b/model/attributes/aws/aws__request__url.json @@ -0,0 +1,23 @@ +{ + "key": "aws.request.url", + "brief": "The URL of the AWS API request.", + "type": "string", + "apply_scrubbing": { + "key": "auto" + }, + "is_in_otel": false, + "example": "https://sqs.us-east-1.amazonaws.com/123456789/my-queue", + "alias": ["url.full"], + "deprecation": { + "_status": "backfill", + "replacement": "url.full", + "reason": "This attribute is being deprecated in favor of url.full, which is the OTel-aligned replacement." + }, + "visibility": "public", + "changelog": [ + { + "version": "next", + "description": "Added aws.request.url attribute, deprecated in favor of url.full" + } + ] +} diff --git a/model/attributes/url/url__full.json b/model/attributes/url/url__full.json index 195f07b2..73f9db51 100644 --- a/model/attributes/url/url__full.json +++ b/model/attributes/url/url__full.json @@ -7,9 +7,13 @@ }, "is_in_otel": true, "example": "https://example.com/test?foo=bar#buzz", - "alias": ["http.url", "url"], + "alias": ["http.url", "url", "aws.request.url"], "visibility": "public", "changelog": [ + { + "version": "next", + "description": "Added aws.request.url as an alias" + }, { "version": "0.1.0", "prs": [108] diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index 90122d51..f8cbd4b2 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -156,6 +156,7 @@ class _AttributeNamesMeta(type): "AWS_LAMBDA_FUNCTION_NAME", "AWS_LAMBDA_FUNCTION_VERSION", "AWS_LAMBDA_INVOKED_FUNCTION_ARN", + "AWS_REQUEST_URL", "CLOUDFLARE_D1_QUERY_TYPE", "CLS_SOURCE_KEY", "CLS", @@ -1344,6 +1345,19 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: ["logs/main/10838bed-421f-43ef-870a-f43feacbbb5b"] """ + # Path: model/attributes/aws/aws__request__url.json + AWS_REQUEST_URL: Literal["aws.request.url"] = "aws.request.url" + """The URL of the AWS API request. + + Type: str + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Aliases: url.full + DEPRECATED: Use url.full instead - This attribute is being deprecated in favor of url.full, which is the OTel-aligned replacement. + Example: "https://sqs.us-east-1.amazonaws.com/123456789/my-queue" + """ + # Path: model/attributes/blocked_main_thread.json BLOCKED_MAIN_THREAD: Literal["blocked_main_thread"] = "blocked_main_thread" """Whether the main thread was blocked by the span. @@ -7954,7 +7968,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Apply Scrubbing: auto Defined in OTEL: Yes Visibility: public - Aliases: http.url, url + Aliases: http.url, url, aws.request.url Example: "https://example.com/test?foo=bar#buzz" """ @@ -9950,6 +9964,26 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ChangelogEntry(version="0.11.1", prs=[414]), ], ), + "aws.request.url": AttributeMetadata( + brief="The URL of the AWS API request.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="https://sqs.us-east-1.amazonaws.com/123456789/my-queue", + deprecation=DeprecationInfo( + replacement="url.full", + reason="This attribute is being deprecated in favor of url.full, which is the OTel-aligned replacement.", + status=DeprecationStatus.BACKFILL, + ), + aliases=["url.full"], + changelog=[ + ChangelogEntry( + version="next", + description="Added aws.request.url attribute, deprecated in favor of url.full", + ), + ], + ), "blocked_main_thread": AttributeMetadata( brief="Whether the main thread was blocked by the span.", type=AttributeType.BOOLEAN, @@ -17573,8 +17607,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=True, visibility=Visibility.PUBLIC, example="https://example.com/test?foo=bar#buzz", - aliases=["http.url", "url"], + aliases=["http.url", "url", "aws.request.url"], changelog=[ + ChangelogEntry( + version="next", description="Added aws.request.url as an alias" + ), ChangelogEntry(version="0.1.0", prs=[108]), ChangelogEntry(version="0.0.0"), ], @@ -18327,6 +18364,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "aws.lambda.remaining_time_in_millis": float, "aws.log.group.names": List[str], "aws.log.stream.names": List[str], + "aws.request.url": str, "blocked_main_thread": bool, "browser.name": str, "browser.performance.navigation.activation_start": float, From 53fed7f89ba7bf0e7440af3ad77d05f9446b3925 Mon Sep 17 00:00:00 2001 From: Ivana Kellyer Date: Fri, 10 Jul 2026 11:53:30 +0200 Subject: [PATCH 2/2] fix(attributes): Add `aws.request.url` to all members of the url.full alias group Co-Authored-By: Claude Opus 4.6 --- javascript/sentry-conventions/src/attributes.ts | 12 ++++++------ model/attributes/aws/aws__request__url.json | 2 +- model/attributes/http/http__url.json | 2 +- model/attributes/url.json | 2 +- python/src/sentry_conventions/attributes.py | 12 ++++++------ 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 25fbfbc9..119a83f3 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -1894,7 +1894,7 @@ export type AWS_LOG_STREAM_NAMES_TYPE = Array; * Attribute defined in OTEL: No * Visibility: public * - * Aliases: {@link URL_FULL} `url.full` + * Aliases: {@link URL_FULL} `url.full`, {@link HTTP_URL} `http.url`, {@link URL} `url` * * @deprecated Use {@link URL_FULL} (url.full) instead - This attribute is being deprecated in favor of url.full, which is the OTel-aligned replacement. * @example "https://sqs.us-east-1.amazonaws.com/123456789/my-queue" @@ -8082,7 +8082,7 @@ export type HTTP_TARGET_TYPE = string; * Attribute defined in OTEL: Yes * Visibility: public * - * Aliases: {@link URL_FULL} `url.full`, {@link URL} `url` + * Aliases: {@link URL_FULL} `url.full`, {@link URL} `url`, {@link AWS_REQUEST_URL} `aws.request.url` * * @deprecated Use {@link URL_FULL} (url.full) instead * @example "https://example.com/test?foo=bar#buzz" @@ -13703,7 +13703,7 @@ export type UI_ELEMENT_WIDTH_TYPE = number; * Attribute defined in OTEL: No * Visibility: public * - * Aliases: {@link URL_FULL} `url.full`, {@link HTTP_URL} `http.url` + * Aliases: {@link URL_FULL} `url.full`, {@link HTTP_URL} `http.url`, {@link AWS_REQUEST_URL} `aws.request.url` * * @deprecated Use {@link URL_FULL} (url.full) instead * @example "https://example.com/test?foo=bar#buzz" @@ -17626,7 +17626,7 @@ export const ATTRIBUTE_METADATA: Record = { replacement: 'url.full', reason: 'This attribute is being deprecated in favor of url.full, which is the OTel-aligned replacement.', }, - aliases: ['url.full'], + aliases: ['url.full', 'http.url', 'url'], changelog: [{ version: 'next', description: 'Added aws.request.url attribute, deprecated in favor of url.full' }], }, blocked_main_thread: { @@ -21417,7 +21417,7 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { replacement: 'url.full', }, - aliases: ['url.full', 'url'], + aliases: ['url.full', 'url', 'aws.request.url'], changelog: [{ version: '0.1.0', prs: [61, 108] }, { version: '0.0.0' }], }, 'http.user_agent': { @@ -24748,7 +24748,7 @@ export const ATTRIBUTE_METADATA: Record = { deprecation: { replacement: 'url.full', }, - aliases: ['url.full', 'http.url'], + aliases: ['url.full', 'http.url', 'aws.request.url'], changelog: [{ version: '0.1.0', prs: [61] }, { version: '0.0.0' }], }, 'url.domain': { diff --git a/model/attributes/aws/aws__request__url.json b/model/attributes/aws/aws__request__url.json index 5ddd979f..a37b4b8e 100644 --- a/model/attributes/aws/aws__request__url.json +++ b/model/attributes/aws/aws__request__url.json @@ -7,7 +7,7 @@ }, "is_in_otel": false, "example": "https://sqs.us-east-1.amazonaws.com/123456789/my-queue", - "alias": ["url.full"], + "alias": ["url.full", "http.url", "url"], "deprecation": { "_status": "backfill", "replacement": "url.full", diff --git a/model/attributes/http/http__url.json b/model/attributes/http/http__url.json index 9625232f..f4777cd0 100644 --- a/model/attributes/http/http__url.json +++ b/model/attributes/http/http__url.json @@ -7,7 +7,7 @@ }, "is_in_otel": true, "example": "https://example.com/test?foo=bar#buzz", - "alias": ["url.full", "url"], + "alias": ["url.full", "url", "aws.request.url"], "deprecation": { "_status": null, "replacement": "url.full" diff --git a/model/attributes/url.json b/model/attributes/url.json index a3c6d5f3..0c017175 100644 --- a/model/attributes/url.json +++ b/model/attributes/url.json @@ -7,7 +7,7 @@ }, "is_in_otel": false, "example": "https://example.com/test?foo=bar#buzz", - "alias": ["url.full", "http.url"], + "alias": ["url.full", "http.url", "aws.request.url"], "deprecation": { "_status": null, "replacement": "url.full" diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index f8cbd4b2..d058c1b6 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -1353,7 +1353,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Apply Scrubbing: auto Defined in OTEL: No Visibility: public - Aliases: url.full + Aliases: url.full, http.url, url DEPRECATED: Use url.full instead - This attribute is being deprecated in favor of url.full, which is the OTel-aligned replacement. Example: "https://sqs.us-east-1.amazonaws.com/123456789/my-queue" """ @@ -4857,7 +4857,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Apply Scrubbing: auto Defined in OTEL: Yes Visibility: public - Aliases: url.full, url + Aliases: url.full, url, aws.request.url DEPRECATED: Use url.full instead Example: "https://example.com/test?foo=bar#buzz" """ @@ -8065,7 +8065,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Apply Scrubbing: auto Defined in OTEL: No Visibility: public - Aliases: url.full, http.url + Aliases: url.full, http.url, aws.request.url DEPRECATED: Use url.full instead Example: "https://example.com/test?foo=bar#buzz" """ @@ -9976,7 +9976,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): reason="This attribute is being deprecated in favor of url.full, which is the OTel-aligned replacement.", status=DeprecationStatus.BACKFILL, ), - aliases=["url.full"], + aliases=["url.full", "http.url", "url"], changelog=[ ChangelogEntry( version="next", @@ -14076,7 +14076,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): visibility=Visibility.PUBLIC, example="https://example.com/test?foo=bar#buzz", deprecation=DeprecationInfo(replacement="url.full"), - aliases=["url.full", "url"], + aliases=["url.full", "url", "aws.request.url"], changelog=[ ChangelogEntry(version="0.1.0", prs=[61, 108]), ChangelogEntry(version="0.0.0"), @@ -17721,7 +17721,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): visibility=Visibility.PUBLIC, example="https://example.com/test?foo=bar#buzz", deprecation=DeprecationInfo(replacement="url.full"), - aliases=["url.full", "http.url"], + aliases=["url.full", "http.url", "aws.request.url"], changelog=[ ChangelogEntry(version="0.1.0", prs=[61]), ChangelogEntry(version="0.0.0"),