From 4acfd92bb59d19403caed541093f57aa41022e4b Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Fri, 10 Jul 2026 14:11:41 +0200 Subject: [PATCH 1/3] feat(attributes): Add dist (deprecated) --- .../sentry-conventions/src/attributes.ts | 43 +++++++++++++++++++ model/attributes/dist.json | 24 +++++++++++ python/src/sentry_conventions/attributes.py | 34 +++++++++++++++ 3 files changed, 101 insertions(+) create mode 100644 model/attributes/dist.json diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 76a56953..83ccb090 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -4798,6 +4798,30 @@ export const DEVICE_USABLE_MEMORY = 'device.usable_memory'; */ export type DEVICE_USABLE_MEMORY_TYPE = number; +// Path: model/attributes/dist.json + +/** + * The sentry dist. `dist` + * + * Attribute Value Type: `string` {@link DIST_TYPE} + * + * Apply Scrubbing: never + * + * Attribute defined in OTEL: No + * Visibility: public + * + * Aliases: {@link SENTRY_DIST} `sentry.dist` + * + * @deprecated Use {@link SERVER_ADDRESS} (server.address) instead - This attribute is being deprecated in favor of sentry.dist. + * @example "1.0" + */ +export const DIST = 'dist'; + +/** + * Type for {@link DIST} dist + */ +export type DIST_TYPE = string; + // Path: model/attributes/effectiveConnectionType.json /** @@ -15304,6 +15328,7 @@ export const ATTRIBUTE_TYPE: Record = { 'device.thermal_state': 'string', 'device.timezone': 'string', 'device.usable_memory': 'integer', + dist: 'string', effectiveConnectionType: 'string', environment: 'string', 'error.type': 'string', @@ -15986,6 +16011,7 @@ export type AttributeName = | typeof DEVICE_THERMAL_STATE | typeof DEVICE_TIMEZONE | typeof DEVICE_USABLE_MEMORY + | typeof DIST | typeof EFFECTIVECONNECTIONTYPE | typeof ENVIRONMENT | typeof ERROR_TYPE @@ -19308,6 +19334,22 @@ export const ATTRIBUTE_METADATA: Record = { example: 2147483648, changelog: [{ version: '0.5.0', prs: [303], description: 'Added device.usable_memory attribute' }], }, + dist: { + brief: 'The sentry dist.', + type: 'string', + applyScrubbing: { + key: 'never', + }, + isInOtel: false, + visibility: 'public', + example: '1.0', + deprecation: { + replacement: 'server.address', + reason: 'This attribute is being deprecated in favor of sentry.dist.', + }, + aliases: ['sentry.dist'], + changelog: [{ version: 'next', prs: [489], description: 'Added dist attribute' }], + }, effectiveConnectionType: { brief: 'Specifies the estimated effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g).', type: 'string', @@ -25696,6 +25738,7 @@ export type Attributes = { [DEVICE_THERMAL_STATE]?: DEVICE_THERMAL_STATE_TYPE; [DEVICE_TIMEZONE]?: DEVICE_TIMEZONE_TYPE; [DEVICE_USABLE_MEMORY]?: DEVICE_USABLE_MEMORY_TYPE; + [DIST]?: DIST_TYPE; [EFFECTIVECONNECTIONTYPE]?: EFFECTIVECONNECTIONTYPE_TYPE; [ENVIRONMENT]?: ENVIRONMENT_TYPE; [ERROR_TYPE]?: ERROR_TYPE_TYPE; diff --git a/model/attributes/dist.json b/model/attributes/dist.json new file mode 100644 index 00000000..327ab89f --- /dev/null +++ b/model/attributes/dist.json @@ -0,0 +1,24 @@ +{ + "key": "dist", + "brief": "The sentry dist.", + "type": "string", + "apply_scrubbing": { + "key": "never" + }, + "is_in_otel": false, + "visibility": "public", + "example": "1.0", + "alias": ["sentry.dist"], + "deprecation": { + "_status": "backfill", + "replacement": "server.address", + "reason": "This attribute is being deprecated in favor of sentry.dist." + }, + "changelog": [ + { + "version": "next", + "prs": [489], + "description": "Added dist attribute" + } + ] +} diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index 90122d51..7f127d62 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -170,6 +170,7 @@ class _AttributeNamesMeta(type): "DB_SYSTEM", "DEVICE_CONNECTION_TYPE", "DEVICEMEMORY", + "DIST", "EFFECTIVECONNECTIONTYPE", "ENVIRONMENT", "FAAS_EXECUTION", @@ -2965,6 +2966,19 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: "8 GB" """ + # Path: model/attributes/dist.json + DIST: Literal["dist"] = "dist" + """The sentry dist. + + Type: str + Apply Scrubbing: never + Defined in OTEL: No + Visibility: public + Aliases: sentry.dist + DEPRECATED: Use server.address instead - This attribute is being deprecated in favor of sentry.dist. + Example: "1.0" + """ + # Path: model/attributes/effectiveConnectionType.json EFFECTIVECONNECTIONTYPE: Literal["effectiveConnectionType"] = ( "effectiveConnectionType" @@ -11807,6 +11821,25 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), ], ), + "dist": AttributeMetadata( + brief="The sentry dist.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.NEVER), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="1.0", + deprecation=DeprecationInfo( + replacement="server.address", + reason="This attribute is being deprecated in favor of sentry.dist.", + status=DeprecationStatus.BACKFILL, + ), + aliases=["sentry.dist"], + changelog=[ + ChangelogEntry( + version="next", prs=[489], description="Added dist attribute" + ), + ], + ), "effectiveConnectionType": AttributeMetadata( brief="Specifies the estimated effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g).", type=AttributeType.STRING, @@ -18460,6 +18493,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "device.timezone": str, "device.usable_memory": int, "deviceMemory": str, + "dist": str, "effectiveConnectionType": str, "environment": str, "error.type": str, From 2b49f858311ad4a06979b47b0858d1f3effc2bf7 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Fri, 10 Jul 2026 15:19:46 +0200 Subject: [PATCH 2/3] fix replacement --- javascript/sentry-conventions/src/attributes.ts | 4 ++-- model/attributes/dist.json | 2 +- python/src/sentry_conventions/attributes.py | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 83ccb090..3dd56fa5 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -4812,7 +4812,7 @@ export type DEVICE_USABLE_MEMORY_TYPE = number; * * Aliases: {@link SENTRY_DIST} `sentry.dist` * - * @deprecated Use {@link SERVER_ADDRESS} (server.address) instead - This attribute is being deprecated in favor of sentry.dist. + * @deprecated Use {@link SERVER_DIST} (server.dist) instead - This attribute is being deprecated in favor of sentry.dist. * @example "1.0" */ export const DIST = 'dist'; @@ -19344,7 +19344,7 @@ export const ATTRIBUTE_METADATA: Record = { visibility: 'public', example: '1.0', deprecation: { - replacement: 'server.address', + replacement: 'server.dist', reason: 'This attribute is being deprecated in favor of sentry.dist.', }, aliases: ['sentry.dist'], diff --git a/model/attributes/dist.json b/model/attributes/dist.json index 327ab89f..8a402cc5 100644 --- a/model/attributes/dist.json +++ b/model/attributes/dist.json @@ -11,7 +11,7 @@ "alias": ["sentry.dist"], "deprecation": { "_status": "backfill", - "replacement": "server.address", + "replacement": "server.dist", "reason": "This attribute is being deprecated in favor of sentry.dist." }, "changelog": [ diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index 7f127d62..4bce590b 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -2975,7 +2975,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Defined in OTEL: No Visibility: public Aliases: sentry.dist - DEPRECATED: Use server.address instead - This attribute is being deprecated in favor of sentry.dist. + DEPRECATED: Use server.dist instead - This attribute is being deprecated in favor of sentry.dist. Example: "1.0" """ @@ -11829,7 +11829,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): visibility=Visibility.PUBLIC, example="1.0", deprecation=DeprecationInfo( - replacement="server.address", + replacement="server.dist", reason="This attribute is being deprecated in favor of sentry.dist.", status=DeprecationStatus.BACKFILL, ), From 42cad8697ed39b90cc21d7d475af2e21dc72f441 Mon Sep 17 00:00:00 2001 From: Alexander Alderman Webb Date: Fri, 10 Jul 2026 15:32:43 +0200 Subject: [PATCH 3/3] fix alias name and make symmetric --- javascript/sentry-conventions/src/attributes.ts | 9 ++++++--- model/attributes/dist.json | 2 +- model/attributes/sentry/sentry__dist.json | 5 +++++ python/src/sentry_conventions/attributes.py | 7 +++++-- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 3dd56fa5..cf8a08d0 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -4812,7 +4812,7 @@ export type DEVICE_USABLE_MEMORY_TYPE = number; * * Aliases: {@link SENTRY_DIST} `sentry.dist` * - * @deprecated Use {@link SERVER_DIST} (server.dist) instead - This attribute is being deprecated in favor of sentry.dist. + * @deprecated Use {@link SENTRY_DIST} (sentry.dist) instead - This attribute is being deprecated in favor of sentry.dist. * @example "1.0" */ export const DIST = 'dist'; @@ -11708,6 +11708,8 @@ export type SENTRY_DESCRIPTION_TYPE = string; * Attribute defined in OTEL: No * Visibility: public * + * Aliases: {@link DIST} `dist` + * * @example "1.0" */ export const SENTRY_DIST = 'sentry.dist'; @@ -19344,7 +19346,7 @@ export const ATTRIBUTE_METADATA: Record = { visibility: 'public', example: '1.0', deprecation: { - replacement: 'server.dist', + replacement: 'sentry.dist', reason: 'This attribute is being deprecated in favor of sentry.dist.', }, aliases: ['sentry.dist'], @@ -23649,7 +23651,8 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, visibility: 'public', example: '1.0', - changelog: [{ version: '0.0.0' }], + aliases: ['dist'], + changelog: [{ version: 'next', description: 'Added dist as an alias' }, { version: '0.0.0' }], }, 'sentry.domain': { brief: diff --git a/model/attributes/dist.json b/model/attributes/dist.json index 8a402cc5..bbec1e46 100644 --- a/model/attributes/dist.json +++ b/model/attributes/dist.json @@ -11,7 +11,7 @@ "alias": ["sentry.dist"], "deprecation": { "_status": "backfill", - "replacement": "server.dist", + "replacement": "sentry.dist", "reason": "This attribute is being deprecated in favor of sentry.dist." }, "changelog": [ diff --git a/model/attributes/sentry/sentry__dist.json b/model/attributes/sentry/sentry__dist.json index 55498713..4c6a1d88 100644 --- a/model/attributes/sentry/sentry__dist.json +++ b/model/attributes/sentry/sentry__dist.json @@ -7,8 +7,13 @@ }, "is_in_otel": false, "example": "1.0", + "alias": ["dist"], "visibility": "public", "changelog": [ + { + "version": "next", + "description": "Added dist as an alias" + }, { "version": "0.0.0" } diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index 4bce590b..326d96f3 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -2975,7 +2975,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Defined in OTEL: No Visibility: public Aliases: sentry.dist - DEPRECATED: Use server.dist instead - This attribute is being deprecated in favor of sentry.dist. + DEPRECATED: Use sentry.dist instead - This attribute is being deprecated in favor of sentry.dist. Example: "1.0" """ @@ -6822,6 +6822,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Apply Scrubbing: never Defined in OTEL: No Visibility: public + Aliases: dist Example: "1.0" """ @@ -11829,7 +11830,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): visibility=Visibility.PUBLIC, example="1.0", deprecation=DeprecationInfo( - replacement="server.dist", + replacement="sentry.dist", reason="This attribute is being deprecated in favor of sentry.dist.", status=DeprecationStatus.BACKFILL, ), @@ -16346,7 +16347,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, visibility=Visibility.PUBLIC, example="1.0", + aliases=["dist"], changelog=[ + ChangelogEntry(version="next", description="Added dist as an alias"), ChangelogEntry(version="0.0.0"), ], ),