diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 041ac192..119a83f3 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`, {@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" + */ +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 /** @@ -8058,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" @@ -13679,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" @@ -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', 'http.url', 'url'], + 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', @@ -21375,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': { @@ -24706,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': { @@ -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..a37b4b8e --- /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", "http.url", "url"], + "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/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/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..d058c1b6 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, 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" + """ + # 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. @@ -4843,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" """ @@ -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" """ @@ -8051,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" """ @@ -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", "http.url", "url"], + 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, @@ -14042,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"), @@ -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"), ], @@ -17684,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"), @@ -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,