From 2104779c8291cd32a9be472cad8f5ebe8fc50ea8 Mon Sep 17 00:00:00 2001 From: Markus Hintersteiner Date: Fri, 15 May 2026 16:36:04 +0200 Subject: [PATCH 1/4] feat(attributes): Add runtime context attributes Add top-level runtime.* attributes mapping to the Sentry runtime context: runtime.name, runtime.version, runtime.build, and runtime.raw_description. Co-Authored-By: Claude Opus 4.6 --- .../sentry-conventions/src/attributes.ts | 133 ++++++++++++++++++ model/attributes/runtime/runtime__build.json | 17 +++ model/attributes/runtime/runtime__name.json | 17 +++ .../runtime/runtime__raw_description.json | 17 +++ .../attributes/runtime/runtime__version.json | 17 +++ python/src/sentry_conventions/attributes.py | 96 +++++++++++++ 6 files changed, 297 insertions(+) create mode 100644 model/attributes/runtime/runtime__build.json create mode 100644 model/attributes/runtime/runtime__name.json create mode 100644 model/attributes/runtime/runtime__raw_description.json create mode 100644 model/attributes/runtime/runtime__version.json diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 8e7aa029..4f8921bd 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -8933,6 +8933,86 @@ export const RPC_SERVICE = 'rpc.service'; */ export type RPC_SERVICE_TYPE = string; +// Path: model/attributes/runtime/runtime__build.json + +/** + * The application build string, when it is separate from the version. `runtime.build` + * + * Attribute Value Type: `string` {@link RUNTIME_BUILD_TYPE} + * + * Contains PII: maybe + * + * Attribute defined in OTEL: No + * + * @example "stable" + */ +export const RUNTIME_BUILD = 'runtime.build'; + +/** + * Type for {@link RUNTIME_BUILD} runtime.build + */ +export type RUNTIME_BUILD_TYPE = string; + +// Path: model/attributes/runtime/runtime__name.json + +/** + * The name of the runtime. For example node, CPython, or rustc. `runtime.name` + * + * Attribute Value Type: `string` {@link RUNTIME_NAME_TYPE} + * + * Contains PII: maybe + * + * Attribute defined in OTEL: No + * + * @example "node" + */ +export const RUNTIME_NAME = 'runtime.name'; + +/** + * Type for {@link RUNTIME_NAME} runtime.name + */ +export type RUNTIME_NAME_TYPE = string; + +// Path: model/attributes/runtime/runtime__raw_description.json + +/** + * Unprocessed description string as obtained from the runtime. Used to extract name and version for well-known runtimes. `runtime.raw_description` + * + * Attribute Value Type: `string` {@link RUNTIME_RAW_DESCRIPTION_TYPE} + * + * Contains PII: maybe + * + * Attribute defined in OTEL: No + * + * @example "Eclipse OpenJ9 VM openj9-0.21.0" + */ +export const RUNTIME_RAW_DESCRIPTION = 'runtime.raw_description'; + +/** + * Type for {@link RUNTIME_RAW_DESCRIPTION} runtime.raw_description + */ +export type RUNTIME_RAW_DESCRIPTION_TYPE = string; + +// Path: model/attributes/runtime/runtime__version.json + +/** + * The version of the runtime. `runtime.version` + * + * Attribute Value Type: `string` {@link RUNTIME_VERSION_TYPE} + * + * Contains PII: maybe + * + * Attribute defined in OTEL: No + * + * @example "18.04.2" + */ +export const RUNTIME_VERSION = 'runtime.version'; + +/** + * Type for {@link RUNTIME_VERSION} runtime.version + */ +export type RUNTIME_VERSION_TYPE = string; + // Path: model/attributes/score/score__[key].json /** @@ -12378,6 +12458,10 @@ export const ATTRIBUTE_TYPE: Record = { [RPC_METHOD]: 'string', [RPC_RESPONSE_STATUS_CODE]: 'string', [RPC_SERVICE]: 'string', + [RUNTIME_BUILD]: 'string', + [RUNTIME_NAME]: 'string', + [RUNTIME_RAW_DESCRIPTION]: 'string', + [RUNTIME_VERSION]: 'string', [SCORE_KEY]: 'double', [SCORE_RATIO_KEY]: 'double', [SCORE_TOTAL]: 'double', @@ -12948,6 +13032,10 @@ export type AttributeName = | typeof RPC_METHOD | typeof RPC_RESPONSE_STATUS_CODE | typeof RPC_SERVICE + | typeof RUNTIME_BUILD + | typeof RUNTIME_NAME + | typeof RUNTIME_RAW_DESCRIPTION + | typeof RUNTIME_VERSION | typeof SCORE_KEY | typeof SCORE_RATIO_KEY | typeof SCORE_TOTAL @@ -18463,6 +18551,47 @@ export const ATTRIBUTE_METADATA: Record = { example: 'myService.BestService', changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, + [RUNTIME_BUILD]: { + brief: 'The application build string, when it is separate from the version.', + type: 'string', + pii: { + isPii: 'maybe', + }, + isInOtel: false, + example: 'stable', + changelog: [{ version: 'next', prs: [383], description: 'Added runtime.build attribute' }], + }, + [RUNTIME_NAME]: { + brief: 'The name of the runtime. For example node, CPython, or rustc.', + type: 'string', + pii: { + isPii: 'maybe', + }, + isInOtel: false, + example: 'node', + changelog: [{ version: 'next', prs: [383], description: 'Added runtime.name attribute' }], + }, + [RUNTIME_RAW_DESCRIPTION]: { + brief: + 'Unprocessed description string as obtained from the runtime. Used to extract name and version for well-known runtimes.', + type: 'string', + pii: { + isPii: 'maybe', + }, + isInOtel: false, + example: 'Eclipse OpenJ9 VM openj9-0.21.0', + changelog: [{ version: 'next', prs: [383], description: 'Added runtime.raw_description attribute' }], + }, + [RUNTIME_VERSION]: { + brief: 'The version of the runtime.', + type: 'string', + pii: { + isPii: 'maybe', + }, + isInOtel: false, + example: '18.04.2', + changelog: [{ version: 'next', prs: [383], description: 'Added runtime.version attribute' }], + }, [SCORE_KEY]: { brief: 'The weighted performance score for a web vital. This is defined as `score.weight.` * `score.ratio.`.', @@ -20494,6 +20623,10 @@ export type Attributes = { [RPC_METHOD]?: RPC_METHOD_TYPE; [RPC_RESPONSE_STATUS_CODE]?: RPC_RESPONSE_STATUS_CODE_TYPE; [RPC_SERVICE]?: RPC_SERVICE_TYPE; + [RUNTIME_BUILD]?: RUNTIME_BUILD_TYPE; + [RUNTIME_NAME]?: RUNTIME_NAME_TYPE; + [RUNTIME_RAW_DESCRIPTION]?: RUNTIME_RAW_DESCRIPTION_TYPE; + [RUNTIME_VERSION]?: RUNTIME_VERSION_TYPE; [SCORE_KEY]?: SCORE_KEY_TYPE; [SCORE_RATIO_KEY]?: SCORE_RATIO_KEY_TYPE; [SCORE_TOTAL]?: SCORE_TOTAL_TYPE; diff --git a/model/attributes/runtime/runtime__build.json b/model/attributes/runtime/runtime__build.json new file mode 100644 index 00000000..2659ba79 --- /dev/null +++ b/model/attributes/runtime/runtime__build.json @@ -0,0 +1,17 @@ +{ + "key": "runtime.build", + "brief": "The application build string, when it is separate from the version.", + "type": "string", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": "stable", + "changelog": [ + { + "version": "next", + "prs": [383], + "description": "Added runtime.build attribute" + } + ] +} diff --git a/model/attributes/runtime/runtime__name.json b/model/attributes/runtime/runtime__name.json new file mode 100644 index 00000000..88b4b7bb --- /dev/null +++ b/model/attributes/runtime/runtime__name.json @@ -0,0 +1,17 @@ +{ + "key": "runtime.name", + "brief": "The name of the runtime. For example node, CPython, or rustc.", + "type": "string", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": "node", + "changelog": [ + { + "version": "next", + "prs": [383], + "description": "Added runtime.name attribute" + } + ] +} diff --git a/model/attributes/runtime/runtime__raw_description.json b/model/attributes/runtime/runtime__raw_description.json new file mode 100644 index 00000000..1c53433e --- /dev/null +++ b/model/attributes/runtime/runtime__raw_description.json @@ -0,0 +1,17 @@ +{ + "key": "runtime.raw_description", + "brief": "Unprocessed description string as obtained from the runtime. Used to extract name and version for well-known runtimes.", + "type": "string", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": "Eclipse OpenJ9 VM openj9-0.21.0", + "changelog": [ + { + "version": "next", + "prs": [383], + "description": "Added runtime.raw_description attribute" + } + ] +} diff --git a/model/attributes/runtime/runtime__version.json b/model/attributes/runtime/runtime__version.json new file mode 100644 index 00000000..4f870415 --- /dev/null +++ b/model/attributes/runtime/runtime__version.json @@ -0,0 +1,17 @@ +{ + "key": "runtime.version", + "brief": "The version of the runtime.", + "type": "string", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": "18.04.2", + "changelog": [ + { + "version": "next", + "prs": [383], + "description": "Added runtime.version attribute" + } + ] +} diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index 4100b101..08d39c11 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -5042,6 +5042,48 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: "myService.BestService" """ + # Path: model/attributes/runtime/runtime__build.json + RUNTIME_BUILD: Literal["runtime.build"] = "runtime.build" + """The application build string, when it is separate from the version. + + Type: str + Contains PII: maybe + Defined in OTEL: No + Example: "stable" + """ + + # Path: model/attributes/runtime/runtime__name.json + RUNTIME_NAME: Literal["runtime.name"] = "runtime.name" + """The name of the runtime. For example node, CPython, or rustc. + + Type: str + Contains PII: maybe + Defined in OTEL: No + Example: "node" + """ + + # Path: model/attributes/runtime/runtime__raw_description.json + RUNTIME_RAW_DESCRIPTION: Literal["runtime.raw_description"] = ( + "runtime.raw_description" + ) + """Unprocessed description string as obtained from the runtime. Used to extract name and version for well-known runtimes. + + Type: str + Contains PII: maybe + Defined in OTEL: No + Example: "Eclipse OpenJ9 VM openj9-0.21.0" + """ + + # Path: model/attributes/runtime/runtime__version.json + RUNTIME_VERSION: Literal["runtime.version"] = "runtime.version" + """The version of the runtime. + + Type: str + Contains PII: maybe + Defined in OTEL: No + Example: "18.04.2" + """ + # Path: model/attributes/score/score__[key].json SCORE_KEY: Literal["score."] = "score." """The weighted performance score for a web vital. This is defined as `score.weight.` * `score.ratio.`. @@ -12265,6 +12307,56 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ChangelogEntry(version="0.0.0"), ], ), + "runtime.build": AttributeMetadata( + brief="The application build string, when it is separate from the version.", + type=AttributeType.STRING, + pii=PiiInfo(isPii=IsPii.MAYBE), + is_in_otel=False, + example="stable", + changelog=[ + ChangelogEntry( + version="next", prs=[383], description="Added runtime.build attribute" + ), + ], + ), + "runtime.name": AttributeMetadata( + brief="The name of the runtime. For example node, CPython, or rustc.", + type=AttributeType.STRING, + pii=PiiInfo(isPii=IsPii.MAYBE), + is_in_otel=False, + example="node", + changelog=[ + ChangelogEntry( + version="next", prs=[383], description="Added runtime.name attribute" + ), + ], + ), + "runtime.raw_description": AttributeMetadata( + brief="Unprocessed description string as obtained from the runtime. Used to extract name and version for well-known runtimes.", + type=AttributeType.STRING, + pii=PiiInfo(isPii=IsPii.MAYBE), + is_in_otel=False, + example="Eclipse OpenJ9 VM openj9-0.21.0", + changelog=[ + ChangelogEntry( + version="next", + prs=[383], + description="Added runtime.raw_description attribute", + ), + ], + ), + "runtime.version": AttributeMetadata( + brief="The version of the runtime.", + type=AttributeType.STRING, + pii=PiiInfo(isPii=IsPii.MAYBE), + is_in_otel=False, + example="18.04.2", + changelog=[ + ChangelogEntry( + version="next", prs=[383], description="Added runtime.version attribute" + ), + ], + ), "score.": AttributeMetadata( brief="The weighted performance score for a web vital. This is defined as `score.weight.` * `score.ratio.`.", type=AttributeType.DOUBLE, @@ -14357,6 +14449,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "rpc.method": str, "rpc.response.status_code": str, "rpc.service": str, + "runtime.build": str, + "runtime.name": str, + "runtime.raw_description": str, + "runtime.version": str, "score.": float, "score.ratio.": float, "score.total": float, From 8aaf32d0728e1132e33df189d1b5f478c10746e6 Mon Sep 17 00:00:00 2001 From: Markus Hintersteiner Date: Fri, 15 May 2026 08:32:09 +0200 Subject: [PATCH 2/4] feat(attributes): Add Android Runtime (ART) GC and memory attributes Add 11 new attributes under the `art` namespace for Android Runtime garbage collection stats and memory info, parsed from ANR thread dumps. GC attributes: gc_total_count, gc_total_time, gc_blocking_count, gc_blocking_time, gc_pre_oome_count, gc_waiting_time Memory attributes: free_memory, free_memory_until_gc, free_memory_until_oome, total_memory, max_memory Co-Authored-By: Claude Opus 4.6 --- .../sentry-conventions/src/attributes.ts | 376 ++++++++++++++++++ model/attributes/art/art__free_memory.json | 18 + .../art/art__free_memory_until_gc.json | 18 + .../art/art__free_memory_until_oome.json | 18 + .../art/art__gc_blocking_count.json | 18 + .../attributes/art/art__gc_blocking_time.json | 18 + .../art/art__gc_pre_oome_count.json | 18 + model/attributes/art/art__gc_total_count.json | 18 + model/attributes/art/art__gc_total_time.json | 18 + .../attributes/art/art__gc_waiting_time.json | 18 + model/attributes/art/art__max_memory.json | 18 + model/attributes/art/art__total_memory.json | 18 + python/src/sentry_conventions/attributes.py | 286 +++++++++++++ 13 files changed, 860 insertions(+) create mode 100644 model/attributes/art/art__free_memory.json create mode 100644 model/attributes/art/art__free_memory_until_gc.json create mode 100644 model/attributes/art/art__free_memory_until_oome.json create mode 100644 model/attributes/art/art__gc_blocking_count.json create mode 100644 model/attributes/art/art__gc_blocking_time.json create mode 100644 model/attributes/art/art__gc_pre_oome_count.json create mode 100644 model/attributes/art/art__gc_total_count.json create mode 100644 model/attributes/art/art__gc_total_time.json create mode 100644 model/attributes/art/art__gc_waiting_time.json create mode 100644 model/attributes/art/art__max_memory.json create mode 100644 model/attributes/art/art__total_memory.json diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 4f8921bd..720c14f3 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -1285,6 +1285,226 @@ export const APP_VITALS_TTID_VALUE = 'app.vitals.ttid.value'; */ export type APP_VITALS_TTID_VALUE_TYPE = number; +// Path: model/attributes/art/art__free_memory.json + +/** + * Free memory available to the process as reported by the Android Runtime, in bytes `art.free_memory` + * + * Attribute Value Type: `number` {@link ART_FREE_MEMORY_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 3181568 + */ +export const ART_FREE_MEMORY = 'art.free_memory'; + +/** + * Type for {@link ART_FREE_MEMORY} art.free_memory + */ +export type ART_FREE_MEMORY_TYPE = number; + +// Path: model/attributes/art/art__free_memory_until_gc.json + +/** + * Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes `art.free_memory_until_gc` + * + * Attribute Value Type: `number` {@link ART_FREE_MEMORY_UNTIL_GC_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 3181568 + */ +export const ART_FREE_MEMORY_UNTIL_GC = 'art.free_memory_until_gc'; + +/** + * Type for {@link ART_FREE_MEMORY_UNTIL_GC} art.free_memory_until_gc + */ +export type ART_FREE_MEMORY_UNTIL_GC_TYPE = number; + +// Path: model/attributes/art/art__free_memory_until_oome.json + +/** + * Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes `art.free_memory_until_oome` + * + * Attribute Value Type: `number` {@link ART_FREE_MEMORY_UNTIL_OOME_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 196083712 + */ +export const ART_FREE_MEMORY_UNTIL_OOME = 'art.free_memory_until_oome'; + +/** + * Type for {@link ART_FREE_MEMORY_UNTIL_OOME} art.free_memory_until_oome + */ +export type ART_FREE_MEMORY_UNTIL_OOME_TYPE = number; + +// Path: model/attributes/art/art__gc_blocking_count.json + +/** + * Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime `art.gc_blocking_count` + * + * Attribute Value Type: `number` {@link ART_GC_BLOCKING_COUNT_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 1 + */ +export const ART_GC_BLOCKING_COUNT = 'art.gc_blocking_count'; + +/** + * Type for {@link ART_GC_BLOCKING_COUNT} art.gc_blocking_count + */ +export type ART_GC_BLOCKING_COUNT_TYPE = number; + +// Path: model/attributes/art/art__gc_blocking_time.json + +/** + * Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds `art.gc_blocking_time` + * + * Attribute Value Type: `number` {@link ART_GC_BLOCKING_TIME_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 11.873 + */ +export const ART_GC_BLOCKING_TIME = 'art.gc_blocking_time'; + +/** + * Type for {@link ART_GC_BLOCKING_TIME} art.gc_blocking_time + */ +export type ART_GC_BLOCKING_TIME_TYPE = number; + +// Path: model/attributes/art/art__gc_pre_oome_count.json + +/** + * Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime `art.gc_pre_oome_count` + * + * Attribute Value Type: `number` {@link ART_GC_PRE_OOME_COUNT_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 0 + */ +export const ART_GC_PRE_OOME_COUNT = 'art.gc_pre_oome_count'; + +/** + * Type for {@link ART_GC_PRE_OOME_COUNT} art.gc_pre_oome_count + */ +export type ART_GC_PRE_OOME_COUNT_TYPE = number; + +// Path: model/attributes/art/art__gc_total_count.json + +/** + * Total number of garbage collections performed by the Android Runtime `art.gc_total_count` + * + * Attribute Value Type: `number` {@link ART_GC_TOTAL_COUNT_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 1 + */ +export const ART_GC_TOTAL_COUNT = 'art.gc_total_count'; + +/** + * Type for {@link ART_GC_TOTAL_COUNT} art.gc_total_count + */ +export type ART_GC_TOTAL_COUNT_TYPE = number; + +// Path: model/attributes/art/art__gc_total_time.json + +/** + * Total time spent in garbage collection by the Android Runtime, in milliseconds `art.gc_total_time` + * + * Attribute Value Type: `number` {@link ART_GC_TOTAL_TIME_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 11.807 + */ +export const ART_GC_TOTAL_TIME = 'art.gc_total_time'; + +/** + * Type for {@link ART_GC_TOTAL_TIME} art.gc_total_time + */ +export type ART_GC_TOTAL_TIME_TYPE = number; + +// Path: model/attributes/art/art__gc_waiting_time.json + +/** + * Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds `art.gc_waiting_time` + * + * Attribute Value Type: `number` {@link ART_GC_WAITING_TIME_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 8.054 + */ +export const ART_GC_WAITING_TIME = 'art.gc_waiting_time'; + +/** + * Type for {@link ART_GC_WAITING_TIME} art.gc_waiting_time + */ +export type ART_GC_WAITING_TIME_TYPE = number; + +// Path: model/attributes/art/art__max_memory.json + +/** + * Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes `art.max_memory` + * + * Attribute Value Type: `number` {@link ART_MAX_MEMORY_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 201326592 + */ +export const ART_MAX_MEMORY = 'art.max_memory'; + +/** + * Type for {@link ART_MAX_MEMORY} art.max_memory + */ +export type ART_MAX_MEMORY_TYPE = number; + +// Path: model/attributes/art/art__total_memory.json + +/** + * Total memory currently allocated to the process by the Android Runtime, in bytes `art.total_memory` + * + * Attribute Value Type: `number` {@link ART_TOTAL_MEMORY_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 7774208 + */ +export const ART_TOTAL_MEMORY = 'art.total_memory'; + +/** + * Type for {@link ART_TOTAL_MEMORY} art.total_memory + */ +export type ART_TOTAL_MEMORY_TYPE = number; + // Path: model/attributes/blocked_main_thread.json /** @@ -12094,6 +12314,17 @@ export const ATTRIBUTE_TYPE: Record = { [APP_VITALS_START_WARM_VALUE]: 'double', [APP_VITALS_TTFD_VALUE]: 'double', [APP_VITALS_TTID_VALUE]: 'double', + [ART_FREE_MEMORY]: 'integer', + [ART_FREE_MEMORY_UNTIL_GC]: 'integer', + [ART_FREE_MEMORY_UNTIL_OOME]: 'integer', + [ART_GC_BLOCKING_COUNT]: 'integer', + [ART_GC_BLOCKING_TIME]: 'double', + [ART_GC_PRE_OOME_COUNT]: 'integer', + [ART_GC_TOTAL_COUNT]: 'integer', + [ART_GC_TOTAL_TIME]: 'double', + [ART_GC_WAITING_TIME]: 'double', + [ART_MAX_MEMORY]: 'integer', + [ART_TOTAL_MEMORY]: 'integer', [BLOCKED_MAIN_THREAD]: 'boolean', [BROWSER_NAME]: 'string', [BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START]: 'double', @@ -12668,6 +12899,17 @@ export type AttributeName = | typeof APP_VITALS_START_WARM_VALUE | typeof APP_VITALS_TTFD_VALUE | typeof APP_VITALS_TTID_VALUE + | typeof ART_FREE_MEMORY + | typeof ART_FREE_MEMORY_UNTIL_GC + | typeof ART_FREE_MEMORY_UNTIL_OOME + | typeof ART_GC_BLOCKING_COUNT + | typeof ART_GC_BLOCKING_TIME + | typeof ART_GC_PRE_OOME_COUNT + | typeof ART_GC_TOTAL_COUNT + | typeof ART_GC_TOTAL_TIME + | typeof ART_GC_WAITING_TIME + | typeof ART_MAX_MEMORY + | typeof ART_TOTAL_MEMORY | typeof BLOCKED_MAIN_THREAD | typeof BROWSER_NAME | typeof BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START @@ -14063,6 +14305,129 @@ export const ATTRIBUTE_METADATA: Record = { sdks: ['sentry.cocoa', 'sentry.java.android', 'sentry.javascript.react-native', 'sentry.dart.flutter'], changelog: [{ version: '0.5.0', prs: [313], description: 'Added app.vitals.ttid.value attribute' }], }, + [ART_FREE_MEMORY]: { + brief: 'Free memory available to the process as reported by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 3181568, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.free_memory attribute' }], + }, + [ART_FREE_MEMORY_UNTIL_GC]: { + brief: 'Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 3181568, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.free_memory_until_gc attribute' }], + }, + [ART_FREE_MEMORY_UNTIL_OOME]: { + brief: 'Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 196083712, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.free_memory_until_oome attribute' }], + }, + [ART_GC_BLOCKING_COUNT]: { + brief: 'Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 1, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_blocking_count attribute' }], + }, + [ART_GC_BLOCKING_TIME]: { + brief: 'Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds', + type: 'double', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 11.873, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_blocking_time attribute' }], + }, + [ART_GC_PRE_OOME_COUNT]: { + brief: + 'Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 0, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_pre_oome_count attribute' }], + }, + [ART_GC_TOTAL_COUNT]: { + brief: 'Total number of garbage collections performed by the Android Runtime', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 1, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_total_count attribute' }], + }, + [ART_GC_TOTAL_TIME]: { + brief: 'Total time spent in garbage collection by the Android Runtime, in milliseconds', + type: 'double', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 11.807, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_total_time attribute' }], + }, + [ART_GC_WAITING_TIME]: { + brief: + 'Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds', + type: 'double', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 8.054, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_waiting_time attribute' }], + }, + [ART_MAX_MEMORY]: { + brief: 'Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 201326592, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.max_memory attribute' }], + }, + [ART_TOTAL_MEMORY]: { + brief: 'Total memory currently allocated to the process by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 7774208, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.total_memory attribute' }], + }, [BLOCKED_MAIN_THREAD]: { brief: 'Whether the main thread was blocked by the span.', type: 'boolean', @@ -20259,6 +20624,17 @@ export type Attributes = { [APP_VITALS_START_WARM_VALUE]?: APP_VITALS_START_WARM_VALUE_TYPE; [APP_VITALS_TTFD_VALUE]?: APP_VITALS_TTFD_VALUE_TYPE; [APP_VITALS_TTID_VALUE]?: APP_VITALS_TTID_VALUE_TYPE; + [ART_FREE_MEMORY]?: ART_FREE_MEMORY_TYPE; + [ART_FREE_MEMORY_UNTIL_GC]?: ART_FREE_MEMORY_UNTIL_GC_TYPE; + [ART_FREE_MEMORY_UNTIL_OOME]?: ART_FREE_MEMORY_UNTIL_OOME_TYPE; + [ART_GC_BLOCKING_COUNT]?: ART_GC_BLOCKING_COUNT_TYPE; + [ART_GC_BLOCKING_TIME]?: ART_GC_BLOCKING_TIME_TYPE; + [ART_GC_PRE_OOME_COUNT]?: ART_GC_PRE_OOME_COUNT_TYPE; + [ART_GC_TOTAL_COUNT]?: ART_GC_TOTAL_COUNT_TYPE; + [ART_GC_TOTAL_TIME]?: ART_GC_TOTAL_TIME_TYPE; + [ART_GC_WAITING_TIME]?: ART_GC_WAITING_TIME_TYPE; + [ART_MAX_MEMORY]?: ART_MAX_MEMORY_TYPE; + [ART_TOTAL_MEMORY]?: ART_TOTAL_MEMORY_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/art/art__free_memory.json b/model/attributes/art/art__free_memory.json new file mode 100644 index 00000000..fdddae8f --- /dev/null +++ b/model/attributes/art/art__free_memory.json @@ -0,0 +1,18 @@ +{ + "key": "art.free_memory", + "brief": "Free memory available to the process as reported by the Android Runtime, in bytes", + "type": "integer", + "pii": { + "key": "false" + }, + "is_in_otel": false, + "example": 3181568, + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "next", + "prs": [382], + "description": "Added art.free_memory attribute" + } + ] +} diff --git a/model/attributes/art/art__free_memory_until_gc.json b/model/attributes/art/art__free_memory_until_gc.json new file mode 100644 index 00000000..3751b966 --- /dev/null +++ b/model/attributes/art/art__free_memory_until_gc.json @@ -0,0 +1,18 @@ +{ + "key": "art.free_memory_until_gc", + "brief": "Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes", + "type": "integer", + "pii": { + "key": "false" + }, + "is_in_otel": false, + "example": 3181568, + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "next", + "prs": [382], + "description": "Added art.free_memory_until_gc attribute" + } + ] +} diff --git a/model/attributes/art/art__free_memory_until_oome.json b/model/attributes/art/art__free_memory_until_oome.json new file mode 100644 index 00000000..21d3c8eb --- /dev/null +++ b/model/attributes/art/art__free_memory_until_oome.json @@ -0,0 +1,18 @@ +{ + "key": "art.free_memory_until_oome", + "brief": "Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes", + "type": "integer", + "pii": { + "key": "false" + }, + "is_in_otel": false, + "example": 196083712, + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "next", + "prs": [382], + "description": "Added art.free_memory_until_oome attribute" + } + ] +} diff --git a/model/attributes/art/art__gc_blocking_count.json b/model/attributes/art/art__gc_blocking_count.json new file mode 100644 index 00000000..24952b01 --- /dev/null +++ b/model/attributes/art/art__gc_blocking_count.json @@ -0,0 +1,18 @@ +{ + "key": "art.gc_blocking_count", + "brief": "Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime", + "type": "integer", + "pii": { + "key": "false" + }, + "is_in_otel": false, + "example": 1, + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "next", + "prs": [382], + "description": "Added art.gc_blocking_count attribute" + } + ] +} diff --git a/model/attributes/art/art__gc_blocking_time.json b/model/attributes/art/art__gc_blocking_time.json new file mode 100644 index 00000000..775b736c --- /dev/null +++ b/model/attributes/art/art__gc_blocking_time.json @@ -0,0 +1,18 @@ +{ + "key": "art.gc_blocking_time", + "brief": "Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds", + "type": "double", + "pii": { + "key": "false" + }, + "is_in_otel": false, + "example": 11.873, + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "next", + "prs": [382], + "description": "Added art.gc_blocking_time attribute" + } + ] +} diff --git a/model/attributes/art/art__gc_pre_oome_count.json b/model/attributes/art/art__gc_pre_oome_count.json new file mode 100644 index 00000000..97b5b9e9 --- /dev/null +++ b/model/attributes/art/art__gc_pre_oome_count.json @@ -0,0 +1,18 @@ +{ + "key": "art.gc_pre_oome_count", + "brief": "Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime", + "type": "integer", + "pii": { + "key": "false" + }, + "is_in_otel": false, + "example": 0, + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "next", + "prs": [382], + "description": "Added art.gc_pre_oome_count attribute" + } + ] +} diff --git a/model/attributes/art/art__gc_total_count.json b/model/attributes/art/art__gc_total_count.json new file mode 100644 index 00000000..c4435b95 --- /dev/null +++ b/model/attributes/art/art__gc_total_count.json @@ -0,0 +1,18 @@ +{ + "key": "art.gc_total_count", + "brief": "Total number of garbage collections performed by the Android Runtime", + "type": "integer", + "pii": { + "key": "false" + }, + "is_in_otel": false, + "example": 1, + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "next", + "prs": [382], + "description": "Added art.gc_total_count attribute" + } + ] +} diff --git a/model/attributes/art/art__gc_total_time.json b/model/attributes/art/art__gc_total_time.json new file mode 100644 index 00000000..e266ac3a --- /dev/null +++ b/model/attributes/art/art__gc_total_time.json @@ -0,0 +1,18 @@ +{ + "key": "art.gc_total_time", + "brief": "Total time spent in garbage collection by the Android Runtime, in milliseconds", + "type": "double", + "pii": { + "key": "false" + }, + "is_in_otel": false, + "example": 11.807, + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "next", + "prs": [382], + "description": "Added art.gc_total_time attribute" + } + ] +} diff --git a/model/attributes/art/art__gc_waiting_time.json b/model/attributes/art/art__gc_waiting_time.json new file mode 100644 index 00000000..f0d9fbc4 --- /dev/null +++ b/model/attributes/art/art__gc_waiting_time.json @@ -0,0 +1,18 @@ +{ + "key": "art.gc_waiting_time", + "brief": "Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds", + "type": "double", + "pii": { + "key": "false" + }, + "is_in_otel": false, + "example": 8.054, + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "next", + "prs": [382], + "description": "Added art.gc_waiting_time attribute" + } + ] +} diff --git a/model/attributes/art/art__max_memory.json b/model/attributes/art/art__max_memory.json new file mode 100644 index 00000000..93eacc7e --- /dev/null +++ b/model/attributes/art/art__max_memory.json @@ -0,0 +1,18 @@ +{ + "key": "art.max_memory", + "brief": "Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes", + "type": "integer", + "pii": { + "key": "false" + }, + "is_in_otel": false, + "example": 201326592, + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "next", + "prs": [382], + "description": "Added art.max_memory attribute" + } + ] +} diff --git a/model/attributes/art/art__total_memory.json b/model/attributes/art/art__total_memory.json new file mode 100644 index 00000000..f4422ec8 --- /dev/null +++ b/model/attributes/art/art__total_memory.json @@ -0,0 +1,18 @@ +{ + "key": "art.total_memory", + "brief": "Total memory currently allocated to the process by the Android Runtime, in bytes", + "type": "integer", + "pii": { + "key": "false" + }, + "is_in_otel": false, + "example": 7774208, + "sdks": ["sentry.java.android"], + "changelog": [ + { + "version": "next", + "prs": [382], + "description": "Added art.total_memory attribute" + } + ] +} diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index 08d39c11..344f92f4 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -937,6 +937,120 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: 1234.56 """ + # Path: model/attributes/art/art__free_memory.json + ART_FREE_MEMORY: Literal["art.free_memory"] = "art.free_memory" + """Free memory available to the process as reported by the Android Runtime, in bytes + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 3181568 + """ + + # Path: model/attributes/art/art__free_memory_until_gc.json + ART_FREE_MEMORY_UNTIL_GC: Literal["art.free_memory_until_gc"] = ( + "art.free_memory_until_gc" + ) + """Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 3181568 + """ + + # Path: model/attributes/art/art__free_memory_until_oome.json + ART_FREE_MEMORY_UNTIL_OOME: Literal["art.free_memory_until_oome"] = ( + "art.free_memory_until_oome" + ) + """Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 196083712 + """ + + # Path: model/attributes/art/art__gc_blocking_count.json + ART_GC_BLOCKING_COUNT: Literal["art.gc_blocking_count"] = "art.gc_blocking_count" + """Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 1 + """ + + # Path: model/attributes/art/art__gc_blocking_time.json + ART_GC_BLOCKING_TIME: Literal["art.gc_blocking_time"] = "art.gc_blocking_time" + """Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds + + Type: float + Contains PII: false + Defined in OTEL: No + Example: 11.873 + """ + + # Path: model/attributes/art/art__gc_pre_oome_count.json + ART_GC_PRE_OOME_COUNT: Literal["art.gc_pre_oome_count"] = "art.gc_pre_oome_count" + """Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 0 + """ + + # Path: model/attributes/art/art__gc_total_count.json + ART_GC_TOTAL_COUNT: Literal["art.gc_total_count"] = "art.gc_total_count" + """Total number of garbage collections performed by the Android Runtime + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 1 + """ + + # Path: model/attributes/art/art__gc_total_time.json + ART_GC_TOTAL_TIME: Literal["art.gc_total_time"] = "art.gc_total_time" + """Total time spent in garbage collection by the Android Runtime, in milliseconds + + Type: float + Contains PII: false + Defined in OTEL: No + Example: 11.807 + """ + + # Path: model/attributes/art/art__gc_waiting_time.json + ART_GC_WAITING_TIME: Literal["art.gc_waiting_time"] = "art.gc_waiting_time" + """Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds + + Type: float + Contains PII: false + Defined in OTEL: No + Example: 8.054 + """ + + # Path: model/attributes/art/art__max_memory.json + ART_MAX_MEMORY: Literal["art.max_memory"] = "art.max_memory" + """Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 201326592 + """ + + # Path: model/attributes/art/art__total_memory.json + ART_TOTAL_MEMORY: Literal["art.total_memory"] = "art.total_memory" + """Total memory currently allocated to the process by the Android Runtime, in bytes + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 7774208 + """ + # 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. @@ -7650,6 +7764,167 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), ], ), + "art.free_memory": AttributeMetadata( + brief="Free memory available to the process as reported by the Android Runtime, in bytes", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=3181568, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", prs=[382], description="Added art.free_memory attribute" + ), + ], + ), + "art.free_memory_until_gc": AttributeMetadata( + brief="Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=3181568, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[382], + description="Added art.free_memory_until_gc attribute", + ), + ], + ), + "art.free_memory_until_oome": AttributeMetadata( + brief="Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=196083712, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[382], + description="Added art.free_memory_until_oome attribute", + ), + ], + ), + "art.gc_blocking_count": AttributeMetadata( + brief="Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=1, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[382], + description="Added art.gc_blocking_count attribute", + ), + ], + ), + "art.gc_blocking_time": AttributeMetadata( + brief="Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=11.873, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[382], + description="Added art.gc_blocking_time attribute", + ), + ], + ), + "art.gc_pre_oome_count": AttributeMetadata( + brief="Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=0, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[382], + description="Added art.gc_pre_oome_count attribute", + ), + ], + ), + "art.gc_total_count": AttributeMetadata( + brief="Total number of garbage collections performed by the Android Runtime", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=1, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[382], + description="Added art.gc_total_count attribute", + ), + ], + ), + "art.gc_total_time": AttributeMetadata( + brief="Total time spent in garbage collection by the Android Runtime, in milliseconds", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=11.807, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[382], + description="Added art.gc_total_time attribute", + ), + ], + ), + "art.gc_waiting_time": AttributeMetadata( + brief="Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=8.054, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[382], + description="Added art.gc_waiting_time attribute", + ), + ], + ), + "art.max_memory": AttributeMetadata( + brief="Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=201326592, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", prs=[382], description="Added art.max_memory attribute" + ), + ], + ), + "art.total_memory": AttributeMetadata( + brief="Total memory currently allocated to the process by the Android Runtime, in bytes", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=7774208, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[382], + description="Added art.total_memory attribute", + ), + ], + ), "blocked_main_thread": AttributeMetadata( brief="Whether the main thread was blocked by the span.", type=AttributeType.BOOLEAN, @@ -14085,6 +14360,17 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "app_start_cold": float, "app_start_type": str, "app_start_warm": float, + "art.free_memory": int, + "art.free_memory_until_gc": int, + "art.free_memory_until_oome": int, + "art.gc_blocking_count": int, + "art.gc_blocking_time": float, + "art.gc_pre_oome_count": int, + "art.gc_total_count": int, + "art.gc_total_time": float, + "art.gc_waiting_time": float, + "art.max_memory": int, + "art.total_memory": int, "blocked_main_thread": bool, "browser.name": str, "browser.performance.navigation.activation_start": float, From 0ca87bed8765834fcde167d9de9797f53944aeee Mon Sep 17 00:00:00 2001 From: Markus Hintersteiner Date: Fri, 15 May 2026 16:16:12 +0200 Subject: [PATCH 3/4] refactor(attributes): Use dotted sub-namespaces for ART attributes Rename ART attribute keys to use dot-separated sub-namespaces, consistent with existing patterns like jvm.gc.*, jvm.memory.*, and browser.web_vital.*. GC attributes move under art.gc.* and memory attributes under art.memory.*, with a max nesting depth of 2 dots. Co-Authored-By: Claude Opus 4.6 --- .../sentry-conventions/src/attributes.ts | 264 +++++++++--------- ...ount.json => art__gc__blocking_count.json} | 4 +- ..._time.json => art__gc__blocking_time.json} | 4 +- ...ount.json => art__gc__pre_oome_count.json} | 4 +- ...l_count.json => art__gc__total_count.json} | 4 +- ...tal_time.json => art__gc__total_time.json} | 4 +- ...g_time.json => art__gc__waiting_time.json} | 4 +- ...ree_memory.json => art__memory__free.json} | 4 +- ...c.json => art__memory__free_until_gc.json} | 4 +- ...json => art__memory__free_until_oome.json} | 4 +- ..._max_memory.json => art__memory__max.json} | 4 +- ...al_memory.json => art__memory__total.json} | 4 +- python/src/sentry_conventions/attributes.py | 206 +++++++------- 13 files changed, 257 insertions(+), 257 deletions(-) rename model/attributes/art/{art__gc_blocking_count.json => art__gc__blocking_count.json} (77%) rename model/attributes/art/{art__gc_blocking_time.json => art__gc__blocking_time.json} (78%) rename model/attributes/art/{art__gc_pre_oome_count.json => art__gc__pre_oome_count.json} (78%) rename model/attributes/art/{art__gc_total_count.json => art__gc__total_count.json} (76%) rename model/attributes/art/{art__gc_total_time.json => art__gc__total_time.json} (78%) rename model/attributes/art/{art__gc_waiting_time.json => art__gc__waiting_time.json} (78%) rename model/attributes/art/{art__free_memory.json => art__memory__free.json} (79%) rename model/attributes/art/{art__free_memory_until_gc.json => art__memory__free_until_gc.json} (76%) rename model/attributes/art/{art__free_memory_until_oome.json => art__memory__free_until_oome.json} (76%) rename model/attributes/art/{art__max_memory.json => art__memory__max.json} (80%) rename model/attributes/art/{art__total_memory.json => art__memory__total.json} (78%) diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 720c14f3..d245de5b 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -1285,72 +1285,72 @@ export const APP_VITALS_TTID_VALUE = 'app.vitals.ttid.value'; */ export type APP_VITALS_TTID_VALUE_TYPE = number; -// Path: model/attributes/art/art__free_memory.json +// Path: model/attributes/art/art__gc__blocking_count.json /** - * Free memory available to the process as reported by the Android Runtime, in bytes `art.free_memory` + * Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime `art.gc.blocking_count` * - * Attribute Value Type: `number` {@link ART_FREE_MEMORY_TYPE} + * Attribute Value Type: `number` {@link ART_GC_BLOCKING_COUNT_TYPE} * * Contains PII: false * * Attribute defined in OTEL: No * - * @example 3181568 + * @example 1 */ -export const ART_FREE_MEMORY = 'art.free_memory'; +export const ART_GC_BLOCKING_COUNT = 'art.gc.blocking_count'; /** - * Type for {@link ART_FREE_MEMORY} art.free_memory + * Type for {@link ART_GC_BLOCKING_COUNT} art.gc.blocking_count */ -export type ART_FREE_MEMORY_TYPE = number; +export type ART_GC_BLOCKING_COUNT_TYPE = number; -// Path: model/attributes/art/art__free_memory_until_gc.json +// Path: model/attributes/art/art__gc__blocking_time.json /** - * Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes `art.free_memory_until_gc` + * Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds `art.gc.blocking_time` * - * Attribute Value Type: `number` {@link ART_FREE_MEMORY_UNTIL_GC_TYPE} + * Attribute Value Type: `number` {@link ART_GC_BLOCKING_TIME_TYPE} * * Contains PII: false * * Attribute defined in OTEL: No * - * @example 3181568 + * @example 11.873 */ -export const ART_FREE_MEMORY_UNTIL_GC = 'art.free_memory_until_gc'; +export const ART_GC_BLOCKING_TIME = 'art.gc.blocking_time'; /** - * Type for {@link ART_FREE_MEMORY_UNTIL_GC} art.free_memory_until_gc + * Type for {@link ART_GC_BLOCKING_TIME} art.gc.blocking_time */ -export type ART_FREE_MEMORY_UNTIL_GC_TYPE = number; +export type ART_GC_BLOCKING_TIME_TYPE = number; -// Path: model/attributes/art/art__free_memory_until_oome.json +// Path: model/attributes/art/art__gc__pre_oome_count.json /** - * Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes `art.free_memory_until_oome` + * Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime `art.gc.pre_oome_count` * - * Attribute Value Type: `number` {@link ART_FREE_MEMORY_UNTIL_OOME_TYPE} + * Attribute Value Type: `number` {@link ART_GC_PRE_OOME_COUNT_TYPE} * * Contains PII: false * * Attribute defined in OTEL: No * - * @example 196083712 + * @example 0 */ -export const ART_FREE_MEMORY_UNTIL_OOME = 'art.free_memory_until_oome'; +export const ART_GC_PRE_OOME_COUNT = 'art.gc.pre_oome_count'; /** - * Type for {@link ART_FREE_MEMORY_UNTIL_OOME} art.free_memory_until_oome + * Type for {@link ART_GC_PRE_OOME_COUNT} art.gc.pre_oome_count */ -export type ART_FREE_MEMORY_UNTIL_OOME_TYPE = number; +export type ART_GC_PRE_OOME_COUNT_TYPE = number; -// Path: model/attributes/art/art__gc_blocking_count.json +// Path: model/attributes/art/art__gc__total_count.json /** - * Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime `art.gc_blocking_count` + * Total number of garbage collections performed by the Android Runtime `art.gc.total_count` * - * Attribute Value Type: `number` {@link ART_GC_BLOCKING_COUNT_TYPE} + * Attribute Value Type: `number` {@link ART_GC_TOTAL_COUNT_TYPE} * * Contains PII: false * @@ -1358,119 +1358,119 @@ export type ART_FREE_MEMORY_UNTIL_OOME_TYPE = number; * * @example 1 */ -export const ART_GC_BLOCKING_COUNT = 'art.gc_blocking_count'; +export const ART_GC_TOTAL_COUNT = 'art.gc.total_count'; /** - * Type for {@link ART_GC_BLOCKING_COUNT} art.gc_blocking_count + * Type for {@link ART_GC_TOTAL_COUNT} art.gc.total_count */ -export type ART_GC_BLOCKING_COUNT_TYPE = number; +export type ART_GC_TOTAL_COUNT_TYPE = number; -// Path: model/attributes/art/art__gc_blocking_time.json +// Path: model/attributes/art/art__gc__total_time.json /** - * Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds `art.gc_blocking_time` + * Total time spent in garbage collection by the Android Runtime, in milliseconds `art.gc.total_time` * - * Attribute Value Type: `number` {@link ART_GC_BLOCKING_TIME_TYPE} + * Attribute Value Type: `number` {@link ART_GC_TOTAL_TIME_TYPE} * * Contains PII: false * * Attribute defined in OTEL: No * - * @example 11.873 + * @example 11.807 */ -export const ART_GC_BLOCKING_TIME = 'art.gc_blocking_time'; +export const ART_GC_TOTAL_TIME = 'art.gc.total_time'; /** - * Type for {@link ART_GC_BLOCKING_TIME} art.gc_blocking_time + * Type for {@link ART_GC_TOTAL_TIME} art.gc.total_time */ -export type ART_GC_BLOCKING_TIME_TYPE = number; +export type ART_GC_TOTAL_TIME_TYPE = number; -// Path: model/attributes/art/art__gc_pre_oome_count.json +// Path: model/attributes/art/art__gc__waiting_time.json /** - * Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime `art.gc_pre_oome_count` + * Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds `art.gc.waiting_time` * - * Attribute Value Type: `number` {@link ART_GC_PRE_OOME_COUNT_TYPE} + * Attribute Value Type: `number` {@link ART_GC_WAITING_TIME_TYPE} * * Contains PII: false * * Attribute defined in OTEL: No * - * @example 0 + * @example 8.054 */ -export const ART_GC_PRE_OOME_COUNT = 'art.gc_pre_oome_count'; +export const ART_GC_WAITING_TIME = 'art.gc.waiting_time'; /** - * Type for {@link ART_GC_PRE_OOME_COUNT} art.gc_pre_oome_count + * Type for {@link ART_GC_WAITING_TIME} art.gc.waiting_time */ -export type ART_GC_PRE_OOME_COUNT_TYPE = number; +export type ART_GC_WAITING_TIME_TYPE = number; -// Path: model/attributes/art/art__gc_total_count.json +// Path: model/attributes/art/art__memory__free.json /** - * Total number of garbage collections performed by the Android Runtime `art.gc_total_count` + * Free memory available to the process as reported by the Android Runtime, in bytes `art.memory.free` * - * Attribute Value Type: `number` {@link ART_GC_TOTAL_COUNT_TYPE} + * Attribute Value Type: `number` {@link ART_MEMORY_FREE_TYPE} * * Contains PII: false * * Attribute defined in OTEL: No * - * @example 1 + * @example 3181568 */ -export const ART_GC_TOTAL_COUNT = 'art.gc_total_count'; +export const ART_MEMORY_FREE = 'art.memory.free'; /** - * Type for {@link ART_GC_TOTAL_COUNT} art.gc_total_count + * Type for {@link ART_MEMORY_FREE} art.memory.free */ -export type ART_GC_TOTAL_COUNT_TYPE = number; +export type ART_MEMORY_FREE_TYPE = number; -// Path: model/attributes/art/art__gc_total_time.json +// Path: model/attributes/art/art__memory__free_until_gc.json /** - * Total time spent in garbage collection by the Android Runtime, in milliseconds `art.gc_total_time` + * Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes `art.memory.free_until_gc` * - * Attribute Value Type: `number` {@link ART_GC_TOTAL_TIME_TYPE} + * Attribute Value Type: `number` {@link ART_MEMORY_FREE_UNTIL_GC_TYPE} * * Contains PII: false * * Attribute defined in OTEL: No * - * @example 11.807 + * @example 3181568 */ -export const ART_GC_TOTAL_TIME = 'art.gc_total_time'; +export const ART_MEMORY_FREE_UNTIL_GC = 'art.memory.free_until_gc'; /** - * Type for {@link ART_GC_TOTAL_TIME} art.gc_total_time + * Type for {@link ART_MEMORY_FREE_UNTIL_GC} art.memory.free_until_gc */ -export type ART_GC_TOTAL_TIME_TYPE = number; +export type ART_MEMORY_FREE_UNTIL_GC_TYPE = number; -// Path: model/attributes/art/art__gc_waiting_time.json +// Path: model/attributes/art/art__memory__free_until_oome.json /** - * Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds `art.gc_waiting_time` + * Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes `art.memory.free_until_oome` * - * Attribute Value Type: `number` {@link ART_GC_WAITING_TIME_TYPE} + * Attribute Value Type: `number` {@link ART_MEMORY_FREE_UNTIL_OOME_TYPE} * * Contains PII: false * * Attribute defined in OTEL: No * - * @example 8.054 + * @example 196083712 */ -export const ART_GC_WAITING_TIME = 'art.gc_waiting_time'; +export const ART_MEMORY_FREE_UNTIL_OOME = 'art.memory.free_until_oome'; /** - * Type for {@link ART_GC_WAITING_TIME} art.gc_waiting_time + * Type for {@link ART_MEMORY_FREE_UNTIL_OOME} art.memory.free_until_oome */ -export type ART_GC_WAITING_TIME_TYPE = number; +export type ART_MEMORY_FREE_UNTIL_OOME_TYPE = number; -// Path: model/attributes/art/art__max_memory.json +// Path: model/attributes/art/art__memory__max.json /** - * Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes `art.max_memory` + * Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes `art.memory.max` * - * Attribute Value Type: `number` {@link ART_MAX_MEMORY_TYPE} + * Attribute Value Type: `number` {@link ART_MEMORY_MAX_TYPE} * * Contains PII: false * @@ -1478,19 +1478,19 @@ export type ART_GC_WAITING_TIME_TYPE = number; * * @example 201326592 */ -export const ART_MAX_MEMORY = 'art.max_memory'; +export const ART_MEMORY_MAX = 'art.memory.max'; /** - * Type for {@link ART_MAX_MEMORY} art.max_memory + * Type for {@link ART_MEMORY_MAX} art.memory.max */ -export type ART_MAX_MEMORY_TYPE = number; +export type ART_MEMORY_MAX_TYPE = number; -// Path: model/attributes/art/art__total_memory.json +// Path: model/attributes/art/art__memory__total.json /** - * Total memory currently allocated to the process by the Android Runtime, in bytes `art.total_memory` + * Total memory currently allocated to the process by the Android Runtime, in bytes `art.memory.total` * - * Attribute Value Type: `number` {@link ART_TOTAL_MEMORY_TYPE} + * Attribute Value Type: `number` {@link ART_MEMORY_TOTAL_TYPE} * * Contains PII: false * @@ -1498,12 +1498,12 @@ export type ART_MAX_MEMORY_TYPE = number; * * @example 7774208 */ -export const ART_TOTAL_MEMORY = 'art.total_memory'; +export const ART_MEMORY_TOTAL = 'art.memory.total'; /** - * Type for {@link ART_TOTAL_MEMORY} art.total_memory + * Type for {@link ART_MEMORY_TOTAL} art.memory.total */ -export type ART_TOTAL_MEMORY_TYPE = number; +export type ART_MEMORY_TOTAL_TYPE = number; // Path: model/attributes/blocked_main_thread.json @@ -12314,17 +12314,17 @@ export const ATTRIBUTE_TYPE: Record = { [APP_VITALS_START_WARM_VALUE]: 'double', [APP_VITALS_TTFD_VALUE]: 'double', [APP_VITALS_TTID_VALUE]: 'double', - [ART_FREE_MEMORY]: 'integer', - [ART_FREE_MEMORY_UNTIL_GC]: 'integer', - [ART_FREE_MEMORY_UNTIL_OOME]: 'integer', [ART_GC_BLOCKING_COUNT]: 'integer', [ART_GC_BLOCKING_TIME]: 'double', [ART_GC_PRE_OOME_COUNT]: 'integer', [ART_GC_TOTAL_COUNT]: 'integer', [ART_GC_TOTAL_TIME]: 'double', [ART_GC_WAITING_TIME]: 'double', - [ART_MAX_MEMORY]: 'integer', - [ART_TOTAL_MEMORY]: 'integer', + [ART_MEMORY_FREE]: 'integer', + [ART_MEMORY_FREE_UNTIL_GC]: 'integer', + [ART_MEMORY_FREE_UNTIL_OOME]: 'integer', + [ART_MEMORY_MAX]: 'integer', + [ART_MEMORY_TOTAL]: 'integer', [BLOCKED_MAIN_THREAD]: 'boolean', [BROWSER_NAME]: 'string', [BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START]: 'double', @@ -12899,17 +12899,17 @@ export type AttributeName = | typeof APP_VITALS_START_WARM_VALUE | typeof APP_VITALS_TTFD_VALUE | typeof APP_VITALS_TTID_VALUE - | typeof ART_FREE_MEMORY - | typeof ART_FREE_MEMORY_UNTIL_GC - | typeof ART_FREE_MEMORY_UNTIL_OOME | typeof ART_GC_BLOCKING_COUNT | typeof ART_GC_BLOCKING_TIME | typeof ART_GC_PRE_OOME_COUNT | typeof ART_GC_TOTAL_COUNT | typeof ART_GC_TOTAL_TIME | typeof ART_GC_WAITING_TIME - | typeof ART_MAX_MEMORY - | typeof ART_TOTAL_MEMORY + | typeof ART_MEMORY_FREE + | typeof ART_MEMORY_FREE_UNTIL_GC + | typeof ART_MEMORY_FREE_UNTIL_OOME + | typeof ART_MEMORY_MAX + | typeof ART_MEMORY_TOTAL | typeof BLOCKED_MAIN_THREAD | typeof BROWSER_NAME | typeof BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START @@ -14305,39 +14305,6 @@ export const ATTRIBUTE_METADATA: Record = { sdks: ['sentry.cocoa', 'sentry.java.android', 'sentry.javascript.react-native', 'sentry.dart.flutter'], changelog: [{ version: '0.5.0', prs: [313], description: 'Added app.vitals.ttid.value attribute' }], }, - [ART_FREE_MEMORY]: { - brief: 'Free memory available to the process as reported by the Android Runtime, in bytes', - type: 'integer', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 3181568, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.free_memory attribute' }], - }, - [ART_FREE_MEMORY_UNTIL_GC]: { - brief: 'Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes', - type: 'integer', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 3181568, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.free_memory_until_gc attribute' }], - }, - [ART_FREE_MEMORY_UNTIL_OOME]: { - brief: 'Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes', - type: 'integer', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 196083712, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.free_memory_until_oome attribute' }], - }, [ART_GC_BLOCKING_COUNT]: { brief: 'Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime', type: 'integer', @@ -14347,7 +14314,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1, sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_blocking_count attribute' }], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.blocking_count attribute' }], }, [ART_GC_BLOCKING_TIME]: { brief: 'Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds', @@ -14358,7 +14325,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 11.873, sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_blocking_time attribute' }], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.blocking_time attribute' }], }, [ART_GC_PRE_OOME_COUNT]: { brief: @@ -14370,7 +14337,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 0, sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_pre_oome_count attribute' }], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.pre_oome_count attribute' }], }, [ART_GC_TOTAL_COUNT]: { brief: 'Total number of garbage collections performed by the Android Runtime', @@ -14381,7 +14348,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 1, sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_total_count attribute' }], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.total_count attribute' }], }, [ART_GC_TOTAL_TIME]: { brief: 'Total time spent in garbage collection by the Android Runtime, in milliseconds', @@ -14392,7 +14359,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 11.807, sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_total_time attribute' }], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.total_time attribute' }], }, [ART_GC_WAITING_TIME]: { brief: @@ -14404,9 +14371,42 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 8.054, sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc_waiting_time attribute' }], + changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.waiting_time attribute' }], + }, + [ART_MEMORY_FREE]: { + brief: 'Free memory available to the process as reported by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 3181568, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.memory.free attribute' }], + }, + [ART_MEMORY_FREE_UNTIL_GC]: { + brief: 'Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 3181568, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.memory.free_until_gc attribute' }], + }, + [ART_MEMORY_FREE_UNTIL_OOME]: { + brief: 'Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 196083712, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [382], description: 'Added art.memory.free_until_oome attribute' }], }, - [ART_MAX_MEMORY]: { + [ART_MEMORY_MAX]: { brief: 'Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes', type: 'integer', pii: { @@ -14415,9 +14415,9 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 201326592, sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.max_memory attribute' }], + changelog: [{ version: 'next', prs: [382], description: 'Added art.memory.max attribute' }], }, - [ART_TOTAL_MEMORY]: { + [ART_MEMORY_TOTAL]: { brief: 'Total memory currently allocated to the process by the Android Runtime, in bytes', type: 'integer', pii: { @@ -14426,7 +14426,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, example: 7774208, sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.total_memory attribute' }], + changelog: [{ version: 'next', prs: [382], description: 'Added art.memory.total attribute' }], }, [BLOCKED_MAIN_THREAD]: { brief: 'Whether the main thread was blocked by the span.', @@ -20624,17 +20624,17 @@ export type Attributes = { [APP_VITALS_START_WARM_VALUE]?: APP_VITALS_START_WARM_VALUE_TYPE; [APP_VITALS_TTFD_VALUE]?: APP_VITALS_TTFD_VALUE_TYPE; [APP_VITALS_TTID_VALUE]?: APP_VITALS_TTID_VALUE_TYPE; - [ART_FREE_MEMORY]?: ART_FREE_MEMORY_TYPE; - [ART_FREE_MEMORY_UNTIL_GC]?: ART_FREE_MEMORY_UNTIL_GC_TYPE; - [ART_FREE_MEMORY_UNTIL_OOME]?: ART_FREE_MEMORY_UNTIL_OOME_TYPE; [ART_GC_BLOCKING_COUNT]?: ART_GC_BLOCKING_COUNT_TYPE; [ART_GC_BLOCKING_TIME]?: ART_GC_BLOCKING_TIME_TYPE; [ART_GC_PRE_OOME_COUNT]?: ART_GC_PRE_OOME_COUNT_TYPE; [ART_GC_TOTAL_COUNT]?: ART_GC_TOTAL_COUNT_TYPE; [ART_GC_TOTAL_TIME]?: ART_GC_TOTAL_TIME_TYPE; [ART_GC_WAITING_TIME]?: ART_GC_WAITING_TIME_TYPE; - [ART_MAX_MEMORY]?: ART_MAX_MEMORY_TYPE; - [ART_TOTAL_MEMORY]?: ART_TOTAL_MEMORY_TYPE; + [ART_MEMORY_FREE]?: ART_MEMORY_FREE_TYPE; + [ART_MEMORY_FREE_UNTIL_GC]?: ART_MEMORY_FREE_UNTIL_GC_TYPE; + [ART_MEMORY_FREE_UNTIL_OOME]?: ART_MEMORY_FREE_UNTIL_OOME_TYPE; + [ART_MEMORY_MAX]?: ART_MEMORY_MAX_TYPE; + [ART_MEMORY_TOTAL]?: ART_MEMORY_TOTAL_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/art/art__gc_blocking_count.json b/model/attributes/art/art__gc__blocking_count.json similarity index 77% rename from model/attributes/art/art__gc_blocking_count.json rename to model/attributes/art/art__gc__blocking_count.json index 24952b01..873639cc 100644 --- a/model/attributes/art/art__gc_blocking_count.json +++ b/model/attributes/art/art__gc__blocking_count.json @@ -1,5 +1,5 @@ { - "key": "art.gc_blocking_count", + "key": "art.gc.blocking_count", "brief": "Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime", "type": "integer", "pii": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [382], - "description": "Added art.gc_blocking_count attribute" + "description": "Added art.gc.blocking_count attribute" } ] } diff --git a/model/attributes/art/art__gc_blocking_time.json b/model/attributes/art/art__gc__blocking_time.json similarity index 78% rename from model/attributes/art/art__gc_blocking_time.json rename to model/attributes/art/art__gc__blocking_time.json index 775b736c..c3e88820 100644 --- a/model/attributes/art/art__gc_blocking_time.json +++ b/model/attributes/art/art__gc__blocking_time.json @@ -1,5 +1,5 @@ { - "key": "art.gc_blocking_time", + "key": "art.gc.blocking_time", "brief": "Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds", "type": "double", "pii": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [382], - "description": "Added art.gc_blocking_time attribute" + "description": "Added art.gc.blocking_time attribute" } ] } diff --git a/model/attributes/art/art__gc_pre_oome_count.json b/model/attributes/art/art__gc__pre_oome_count.json similarity index 78% rename from model/attributes/art/art__gc_pre_oome_count.json rename to model/attributes/art/art__gc__pre_oome_count.json index 97b5b9e9..d574d39a 100644 --- a/model/attributes/art/art__gc_pre_oome_count.json +++ b/model/attributes/art/art__gc__pre_oome_count.json @@ -1,5 +1,5 @@ { - "key": "art.gc_pre_oome_count", + "key": "art.gc.pre_oome_count", "brief": "Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime", "type": "integer", "pii": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [382], - "description": "Added art.gc_pre_oome_count attribute" + "description": "Added art.gc.pre_oome_count attribute" } ] } diff --git a/model/attributes/art/art__gc_total_count.json b/model/attributes/art/art__gc__total_count.json similarity index 76% rename from model/attributes/art/art__gc_total_count.json rename to model/attributes/art/art__gc__total_count.json index c4435b95..2eeaf836 100644 --- a/model/attributes/art/art__gc_total_count.json +++ b/model/attributes/art/art__gc__total_count.json @@ -1,5 +1,5 @@ { - "key": "art.gc_total_count", + "key": "art.gc.total_count", "brief": "Total number of garbage collections performed by the Android Runtime", "type": "integer", "pii": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [382], - "description": "Added art.gc_total_count attribute" + "description": "Added art.gc.total_count attribute" } ] } diff --git a/model/attributes/art/art__gc_total_time.json b/model/attributes/art/art__gc__total_time.json similarity index 78% rename from model/attributes/art/art__gc_total_time.json rename to model/attributes/art/art__gc__total_time.json index e266ac3a..b6fa4b15 100644 --- a/model/attributes/art/art__gc_total_time.json +++ b/model/attributes/art/art__gc__total_time.json @@ -1,5 +1,5 @@ { - "key": "art.gc_total_time", + "key": "art.gc.total_time", "brief": "Total time spent in garbage collection by the Android Runtime, in milliseconds", "type": "double", "pii": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [382], - "description": "Added art.gc_total_time attribute" + "description": "Added art.gc.total_time attribute" } ] } diff --git a/model/attributes/art/art__gc_waiting_time.json b/model/attributes/art/art__gc__waiting_time.json similarity index 78% rename from model/attributes/art/art__gc_waiting_time.json rename to model/attributes/art/art__gc__waiting_time.json index f0d9fbc4..3420ec38 100644 --- a/model/attributes/art/art__gc_waiting_time.json +++ b/model/attributes/art/art__gc__waiting_time.json @@ -1,5 +1,5 @@ { - "key": "art.gc_waiting_time", + "key": "art.gc.waiting_time", "brief": "Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds", "type": "double", "pii": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [382], - "description": "Added art.gc_waiting_time attribute" + "description": "Added art.gc.waiting_time attribute" } ] } diff --git a/model/attributes/art/art__free_memory.json b/model/attributes/art/art__memory__free.json similarity index 79% rename from model/attributes/art/art__free_memory.json rename to model/attributes/art/art__memory__free.json index fdddae8f..93ffee88 100644 --- a/model/attributes/art/art__free_memory.json +++ b/model/attributes/art/art__memory__free.json @@ -1,5 +1,5 @@ { - "key": "art.free_memory", + "key": "art.memory.free", "brief": "Free memory available to the process as reported by the Android Runtime, in bytes", "type": "integer", "pii": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [382], - "description": "Added art.free_memory attribute" + "description": "Added art.memory.free attribute" } ] } diff --git a/model/attributes/art/art__free_memory_until_gc.json b/model/attributes/art/art__memory__free_until_gc.json similarity index 76% rename from model/attributes/art/art__free_memory_until_gc.json rename to model/attributes/art/art__memory__free_until_gc.json index 3751b966..e5c9628a 100644 --- a/model/attributes/art/art__free_memory_until_gc.json +++ b/model/attributes/art/art__memory__free_until_gc.json @@ -1,5 +1,5 @@ { - "key": "art.free_memory_until_gc", + "key": "art.memory.free_until_gc", "brief": "Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes", "type": "integer", "pii": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [382], - "description": "Added art.free_memory_until_gc attribute" + "description": "Added art.memory.free_until_gc attribute" } ] } diff --git a/model/attributes/art/art__free_memory_until_oome.json b/model/attributes/art/art__memory__free_until_oome.json similarity index 76% rename from model/attributes/art/art__free_memory_until_oome.json rename to model/attributes/art/art__memory__free_until_oome.json index 21d3c8eb..e3506577 100644 --- a/model/attributes/art/art__free_memory_until_oome.json +++ b/model/attributes/art/art__memory__free_until_oome.json @@ -1,5 +1,5 @@ { - "key": "art.free_memory_until_oome", + "key": "art.memory.free_until_oome", "brief": "Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes", "type": "integer", "pii": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [382], - "description": "Added art.free_memory_until_oome attribute" + "description": "Added art.memory.free_until_oome attribute" } ] } diff --git a/model/attributes/art/art__max_memory.json b/model/attributes/art/art__memory__max.json similarity index 80% rename from model/attributes/art/art__max_memory.json rename to model/attributes/art/art__memory__max.json index 93eacc7e..cbb4737e 100644 --- a/model/attributes/art/art__max_memory.json +++ b/model/attributes/art/art__memory__max.json @@ -1,5 +1,5 @@ { - "key": "art.max_memory", + "key": "art.memory.max", "brief": "Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes", "type": "integer", "pii": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [382], - "description": "Added art.max_memory attribute" + "description": "Added art.memory.max attribute" } ] } diff --git a/model/attributes/art/art__total_memory.json b/model/attributes/art/art__memory__total.json similarity index 78% rename from model/attributes/art/art__total_memory.json rename to model/attributes/art/art__memory__total.json index f4422ec8..349f863c 100644 --- a/model/attributes/art/art__total_memory.json +++ b/model/attributes/art/art__memory__total.json @@ -1,5 +1,5 @@ { - "key": "art.total_memory", + "key": "art.memory.total", "brief": "Total memory currently allocated to the process by the Android Runtime, in bytes", "type": "integer", "pii": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [382], - "description": "Added art.total_memory attribute" + "description": "Added art.memory.total attribute" } ] } diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index 344f92f4..e32fb0cd 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -937,43 +937,39 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: 1234.56 """ - # Path: model/attributes/art/art__free_memory.json - ART_FREE_MEMORY: Literal["art.free_memory"] = "art.free_memory" - """Free memory available to the process as reported by the Android Runtime, in bytes + # Path: model/attributes/art/art__gc__blocking_count.json + ART_GC_BLOCKING_COUNT: Literal["art.gc.blocking_count"] = "art.gc.blocking_count" + """Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime Type: int Contains PII: false Defined in OTEL: No - Example: 3181568 + Example: 1 """ - # Path: model/attributes/art/art__free_memory_until_gc.json - ART_FREE_MEMORY_UNTIL_GC: Literal["art.free_memory_until_gc"] = ( - "art.free_memory_until_gc" - ) - """Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes + # Path: model/attributes/art/art__gc__blocking_time.json + ART_GC_BLOCKING_TIME: Literal["art.gc.blocking_time"] = "art.gc.blocking_time" + """Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds - Type: int + Type: float Contains PII: false Defined in OTEL: No - Example: 3181568 + Example: 11.873 """ - # Path: model/attributes/art/art__free_memory_until_oome.json - ART_FREE_MEMORY_UNTIL_OOME: Literal["art.free_memory_until_oome"] = ( - "art.free_memory_until_oome" - ) - """Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes + # Path: model/attributes/art/art__gc__pre_oome_count.json + ART_GC_PRE_OOME_COUNT: Literal["art.gc.pre_oome_count"] = "art.gc.pre_oome_count" + """Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime Type: int Contains PII: false Defined in OTEL: No - Example: 196083712 + Example: 0 """ - # Path: model/attributes/art/art__gc_blocking_count.json - ART_GC_BLOCKING_COUNT: Literal["art.gc_blocking_count"] = "art.gc_blocking_count" - """Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime + # Path: model/attributes/art/art__gc__total_count.json + ART_GC_TOTAL_COUNT: Literal["art.gc.total_count"] = "art.gc.total_count" + """Total number of garbage collections performed by the Android Runtime Type: int Contains PII: false @@ -981,58 +977,62 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: 1 """ - # Path: model/attributes/art/art__gc_blocking_time.json - ART_GC_BLOCKING_TIME: Literal["art.gc_blocking_time"] = "art.gc_blocking_time" - """Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds + # Path: model/attributes/art/art__gc__total_time.json + ART_GC_TOTAL_TIME: Literal["art.gc.total_time"] = "art.gc.total_time" + """Total time spent in garbage collection by the Android Runtime, in milliseconds Type: float Contains PII: false Defined in OTEL: No - Example: 11.873 + Example: 11.807 """ - # Path: model/attributes/art/art__gc_pre_oome_count.json - ART_GC_PRE_OOME_COUNT: Literal["art.gc_pre_oome_count"] = "art.gc_pre_oome_count" - """Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime + # Path: model/attributes/art/art__gc__waiting_time.json + ART_GC_WAITING_TIME: Literal["art.gc.waiting_time"] = "art.gc.waiting_time" + """Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds - Type: int + Type: float Contains PII: false Defined in OTEL: No - Example: 0 + Example: 8.054 """ - # Path: model/attributes/art/art__gc_total_count.json - ART_GC_TOTAL_COUNT: Literal["art.gc_total_count"] = "art.gc_total_count" - """Total number of garbage collections performed by the Android Runtime + # Path: model/attributes/art/art__memory__free.json + ART_MEMORY_FREE: Literal["art.memory.free"] = "art.memory.free" + """Free memory available to the process as reported by the Android Runtime, in bytes Type: int Contains PII: false Defined in OTEL: No - Example: 1 + Example: 3181568 """ - # Path: model/attributes/art/art__gc_total_time.json - ART_GC_TOTAL_TIME: Literal["art.gc_total_time"] = "art.gc_total_time" - """Total time spent in garbage collection by the Android Runtime, in milliseconds + # Path: model/attributes/art/art__memory__free_until_gc.json + ART_MEMORY_FREE_UNTIL_GC: Literal["art.memory.free_until_gc"] = ( + "art.memory.free_until_gc" + ) + """Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes - Type: float + Type: int Contains PII: false Defined in OTEL: No - Example: 11.807 + Example: 3181568 """ - # Path: model/attributes/art/art__gc_waiting_time.json - ART_GC_WAITING_TIME: Literal["art.gc_waiting_time"] = "art.gc_waiting_time" - """Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds + # Path: model/attributes/art/art__memory__free_until_oome.json + ART_MEMORY_FREE_UNTIL_OOME: Literal["art.memory.free_until_oome"] = ( + "art.memory.free_until_oome" + ) + """Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes - Type: float + Type: int Contains PII: false Defined in OTEL: No - Example: 8.054 + Example: 196083712 """ - # Path: model/attributes/art/art__max_memory.json - ART_MAX_MEMORY: Literal["art.max_memory"] = "art.max_memory" + # Path: model/attributes/art/art__memory__max.json + ART_MEMORY_MAX: Literal["art.memory.max"] = "art.memory.max" """Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes Type: int @@ -1041,8 +1041,8 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: 201326592 """ - # Path: model/attributes/art/art__total_memory.json - ART_TOTAL_MEMORY: Literal["art.total_memory"] = "art.total_memory" + # Path: model/attributes/art/art__memory__total.json + ART_MEMORY_TOTAL: Literal["art.memory.total"] = "art.memory.total" """Total memory currently allocated to the process by the Android Runtime, in bytes Type: int @@ -7764,51 +7764,53 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), ], ), - "art.free_memory": AttributeMetadata( - brief="Free memory available to the process as reported by the Android Runtime, in bytes", + "art.gc.blocking_count": AttributeMetadata( + brief="Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime", type=AttributeType.INTEGER, pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, - example=3181568, + example=1, sdks=["sentry.java.android"], changelog=[ ChangelogEntry( - version="next", prs=[382], description="Added art.free_memory attribute" + version="next", + prs=[382], + description="Added art.gc.blocking_count attribute", ), ], ), - "art.free_memory_until_gc": AttributeMetadata( - brief="Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes", - type=AttributeType.INTEGER, + "art.gc.blocking_time": AttributeMetadata( + brief="Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds", + type=AttributeType.DOUBLE, pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, - example=3181568, + example=11.873, sdks=["sentry.java.android"], changelog=[ ChangelogEntry( version="next", prs=[382], - description="Added art.free_memory_until_gc attribute", + description="Added art.gc.blocking_time attribute", ), ], ), - "art.free_memory_until_oome": AttributeMetadata( - brief="Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes", + "art.gc.pre_oome_count": AttributeMetadata( + brief="Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime", type=AttributeType.INTEGER, pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, - example=196083712, + example=0, sdks=["sentry.java.android"], changelog=[ ChangelogEntry( version="next", prs=[382], - description="Added art.free_memory_until_oome attribute", + description="Added art.gc.pre_oome_count attribute", ), ], ), - "art.gc_blocking_count": AttributeMetadata( - brief="Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime", + "art.gc.total_count": AttributeMetadata( + brief="Total number of garbage collections performed by the Android Runtime", type=AttributeType.INTEGER, pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, @@ -7818,86 +7820,84 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ChangelogEntry( version="next", prs=[382], - description="Added art.gc_blocking_count attribute", + description="Added art.gc.total_count attribute", ), ], ), - "art.gc_blocking_time": AttributeMetadata( - brief="Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds", + "art.gc.total_time": AttributeMetadata( + brief="Total time spent in garbage collection by the Android Runtime, in milliseconds", type=AttributeType.DOUBLE, pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, - example=11.873, + example=11.807, sdks=["sentry.java.android"], changelog=[ ChangelogEntry( version="next", prs=[382], - description="Added art.gc_blocking_time attribute", + description="Added art.gc.total_time attribute", ), ], ), - "art.gc_pre_oome_count": AttributeMetadata( - brief="Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime", - type=AttributeType.INTEGER, + "art.gc.waiting_time": AttributeMetadata( + brief="Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds", + type=AttributeType.DOUBLE, pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, - example=0, + example=8.054, sdks=["sentry.java.android"], changelog=[ ChangelogEntry( version="next", prs=[382], - description="Added art.gc_pre_oome_count attribute", + description="Added art.gc.waiting_time attribute", ), ], ), - "art.gc_total_count": AttributeMetadata( - brief="Total number of garbage collections performed by the Android Runtime", + "art.memory.free": AttributeMetadata( + brief="Free memory available to the process as reported by the Android Runtime, in bytes", type=AttributeType.INTEGER, pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, - example=1, + example=3181568, sdks=["sentry.java.android"], changelog=[ ChangelogEntry( - version="next", - prs=[382], - description="Added art.gc_total_count attribute", + version="next", prs=[382], description="Added art.memory.free attribute" ), ], ), - "art.gc_total_time": AttributeMetadata( - brief="Total time spent in garbage collection by the Android Runtime, in milliseconds", - type=AttributeType.DOUBLE, + "art.memory.free_until_gc": AttributeMetadata( + brief="Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes", + type=AttributeType.INTEGER, pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, - example=11.807, + example=3181568, sdks=["sentry.java.android"], changelog=[ ChangelogEntry( version="next", prs=[382], - description="Added art.gc_total_time attribute", + description="Added art.memory.free_until_gc attribute", ), ], ), - "art.gc_waiting_time": AttributeMetadata( - brief="Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds", - type=AttributeType.DOUBLE, + "art.memory.free_until_oome": AttributeMetadata( + brief="Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes", + type=AttributeType.INTEGER, pii=PiiInfo(isPii=IsPii.FALSE), is_in_otel=False, - example=8.054, + example=196083712, sdks=["sentry.java.android"], changelog=[ ChangelogEntry( version="next", prs=[382], - description="Added art.gc_waiting_time attribute", + description="Added art.memory.free_until_oome attribute", ), ], ), - "art.max_memory": AttributeMetadata( + "art.memory.max": AttributeMetadata( brief="Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes", type=AttributeType.INTEGER, pii=PiiInfo(isPii=IsPii.FALSE), @@ -7906,11 +7906,11 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): sdks=["sentry.java.android"], changelog=[ ChangelogEntry( - version="next", prs=[382], description="Added art.max_memory attribute" + version="next", prs=[382], description="Added art.memory.max attribute" ), ], ), - "art.total_memory": AttributeMetadata( + "art.memory.total": AttributeMetadata( brief="Total memory currently allocated to the process by the Android Runtime, in bytes", type=AttributeType.INTEGER, pii=PiiInfo(isPii=IsPii.FALSE), @@ -7921,7 +7921,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ChangelogEntry( version="next", prs=[382], - description="Added art.total_memory attribute", + description="Added art.memory.total attribute", ), ], ), @@ -14360,17 +14360,17 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "app_start_cold": float, "app_start_type": str, "app_start_warm": float, - "art.free_memory": int, - "art.free_memory_until_gc": int, - "art.free_memory_until_oome": int, - "art.gc_blocking_count": int, - "art.gc_blocking_time": float, - "art.gc_pre_oome_count": int, - "art.gc_total_count": int, - "art.gc_total_time": float, - "art.gc_waiting_time": float, - "art.max_memory": int, - "art.total_memory": int, + "art.gc.blocking_count": int, + "art.gc.blocking_time": float, + "art.gc.pre_oome_count": int, + "art.gc.total_count": int, + "art.gc.total_time": float, + "art.gc.waiting_time": float, + "art.memory.free": int, + "art.memory.free_until_gc": int, + "art.memory.free_until_oome": int, + "art.memory.max": int, + "art.memory.total": int, "blocked_main_thread": bool, "browser.name": str, "browser.performance.navigation.activation_start": float, From 4ee2e0c00f419775311f4117eb925e1a1ee2ab70 Mon Sep 17 00:00:00 2001 From: Markus Hintersteiner Date: Fri, 15 May 2026 16:40:11 +0200 Subject: [PATCH 4/4] feat(attributes): Move ART GC and memory attributes under runtime namespace Rename art.* attributes to runtime.art.* to nest them under the runtime context namespace. This aligns with the runtime context attribute structure. Co-Authored-By: Claude Opus 4.6 --- .../sentry-conventions/src/attributes.ts | 752 +++++++++--------- .../runtime__art__gc__blocking_count.json} | 6 +- .../runtime__art__gc__blocking_time.json} | 6 +- .../runtime__art__gc__pre_oome_count.json} | 6 +- .../runtime__art__gc__total_count.json} | 6 +- .../runtime__art__gc__total_time.json} | 6 +- .../runtime__art__gc__waiting_time.json} | 6 +- .../runtime__art__memory__free.json} | 6 +- .../runtime__art__memory__free_until_gc.json} | 6 +- ...untime__art__memory__free_until_oome.json} | 6 +- .../runtime__art__memory__max.json} | 6 +- .../runtime__art__memory__total.json} | 6 +- python/src/sentry_conventions/attributes.py | 592 +++++++------- 13 files changed, 715 insertions(+), 695 deletions(-) rename model/attributes/{art/art__gc__blocking_count.json => runtime/runtime__art__gc__blocking_count.json} (69%) rename model/attributes/{art/art__gc__blocking_time.json => runtime/runtime__art__gc__blocking_time.json} (71%) rename model/attributes/{art/art__gc__pre_oome_count.json => runtime/runtime__art__gc__pre_oome_count.json} (70%) rename model/attributes/{art/art__gc__total_count.json => runtime/runtime__art__gc__total_count.json} (68%) rename model/attributes/{art/art__gc__total_time.json => runtime/runtime__art__gc__total_time.json} (70%) rename model/attributes/{art/art__gc__waiting_time.json => runtime/runtime__art__gc__waiting_time.json} (71%) rename model/attributes/{art/art__memory__free.json => runtime/runtime__art__memory__free.json} (71%) rename model/attributes/{art/art__memory__free_until_gc.json => runtime/runtime__art__memory__free_until_gc.json} (69%) rename model/attributes/{art/art__memory__free_until_oome.json => runtime/runtime__art__memory__free_until_oome.json} (68%) rename model/attributes/{art/art__memory__max.json => runtime/runtime__art__memory__max.json} (72%) rename model/attributes/{art/art__memory__total.json => runtime/runtime__art__memory__total.json} (70%) diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index d245de5b..f0a0e987 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -1285,226 +1285,6 @@ export const APP_VITALS_TTID_VALUE = 'app.vitals.ttid.value'; */ export type APP_VITALS_TTID_VALUE_TYPE = number; -// Path: model/attributes/art/art__gc__blocking_count.json - -/** - * Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime `art.gc.blocking_count` - * - * Attribute Value Type: `number` {@link ART_GC_BLOCKING_COUNT_TYPE} - * - * Contains PII: false - * - * Attribute defined in OTEL: No - * - * @example 1 - */ -export const ART_GC_BLOCKING_COUNT = 'art.gc.blocking_count'; - -/** - * Type for {@link ART_GC_BLOCKING_COUNT} art.gc.blocking_count - */ -export type ART_GC_BLOCKING_COUNT_TYPE = number; - -// Path: model/attributes/art/art__gc__blocking_time.json - -/** - * Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds `art.gc.blocking_time` - * - * Attribute Value Type: `number` {@link ART_GC_BLOCKING_TIME_TYPE} - * - * Contains PII: false - * - * Attribute defined in OTEL: No - * - * @example 11.873 - */ -export const ART_GC_BLOCKING_TIME = 'art.gc.blocking_time'; - -/** - * Type for {@link ART_GC_BLOCKING_TIME} art.gc.blocking_time - */ -export type ART_GC_BLOCKING_TIME_TYPE = number; - -// Path: model/attributes/art/art__gc__pre_oome_count.json - -/** - * Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime `art.gc.pre_oome_count` - * - * Attribute Value Type: `number` {@link ART_GC_PRE_OOME_COUNT_TYPE} - * - * Contains PII: false - * - * Attribute defined in OTEL: No - * - * @example 0 - */ -export const ART_GC_PRE_OOME_COUNT = 'art.gc.pre_oome_count'; - -/** - * Type for {@link ART_GC_PRE_OOME_COUNT} art.gc.pre_oome_count - */ -export type ART_GC_PRE_OOME_COUNT_TYPE = number; - -// Path: model/attributes/art/art__gc__total_count.json - -/** - * Total number of garbage collections performed by the Android Runtime `art.gc.total_count` - * - * Attribute Value Type: `number` {@link ART_GC_TOTAL_COUNT_TYPE} - * - * Contains PII: false - * - * Attribute defined in OTEL: No - * - * @example 1 - */ -export const ART_GC_TOTAL_COUNT = 'art.gc.total_count'; - -/** - * Type for {@link ART_GC_TOTAL_COUNT} art.gc.total_count - */ -export type ART_GC_TOTAL_COUNT_TYPE = number; - -// Path: model/attributes/art/art__gc__total_time.json - -/** - * Total time spent in garbage collection by the Android Runtime, in milliseconds `art.gc.total_time` - * - * Attribute Value Type: `number` {@link ART_GC_TOTAL_TIME_TYPE} - * - * Contains PII: false - * - * Attribute defined in OTEL: No - * - * @example 11.807 - */ -export const ART_GC_TOTAL_TIME = 'art.gc.total_time'; - -/** - * Type for {@link ART_GC_TOTAL_TIME} art.gc.total_time - */ -export type ART_GC_TOTAL_TIME_TYPE = number; - -// Path: model/attributes/art/art__gc__waiting_time.json - -/** - * Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds `art.gc.waiting_time` - * - * Attribute Value Type: `number` {@link ART_GC_WAITING_TIME_TYPE} - * - * Contains PII: false - * - * Attribute defined in OTEL: No - * - * @example 8.054 - */ -export const ART_GC_WAITING_TIME = 'art.gc.waiting_time'; - -/** - * Type for {@link ART_GC_WAITING_TIME} art.gc.waiting_time - */ -export type ART_GC_WAITING_TIME_TYPE = number; - -// Path: model/attributes/art/art__memory__free.json - -/** - * Free memory available to the process as reported by the Android Runtime, in bytes `art.memory.free` - * - * Attribute Value Type: `number` {@link ART_MEMORY_FREE_TYPE} - * - * Contains PII: false - * - * Attribute defined in OTEL: No - * - * @example 3181568 - */ -export const ART_MEMORY_FREE = 'art.memory.free'; - -/** - * Type for {@link ART_MEMORY_FREE} art.memory.free - */ -export type ART_MEMORY_FREE_TYPE = number; - -// Path: model/attributes/art/art__memory__free_until_gc.json - -/** - * Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes `art.memory.free_until_gc` - * - * Attribute Value Type: `number` {@link ART_MEMORY_FREE_UNTIL_GC_TYPE} - * - * Contains PII: false - * - * Attribute defined in OTEL: No - * - * @example 3181568 - */ -export const ART_MEMORY_FREE_UNTIL_GC = 'art.memory.free_until_gc'; - -/** - * Type for {@link ART_MEMORY_FREE_UNTIL_GC} art.memory.free_until_gc - */ -export type ART_MEMORY_FREE_UNTIL_GC_TYPE = number; - -// Path: model/attributes/art/art__memory__free_until_oome.json - -/** - * Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes `art.memory.free_until_oome` - * - * Attribute Value Type: `number` {@link ART_MEMORY_FREE_UNTIL_OOME_TYPE} - * - * Contains PII: false - * - * Attribute defined in OTEL: No - * - * @example 196083712 - */ -export const ART_MEMORY_FREE_UNTIL_OOME = 'art.memory.free_until_oome'; - -/** - * Type for {@link ART_MEMORY_FREE_UNTIL_OOME} art.memory.free_until_oome - */ -export type ART_MEMORY_FREE_UNTIL_OOME_TYPE = number; - -// Path: model/attributes/art/art__memory__max.json - -/** - * Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes `art.memory.max` - * - * Attribute Value Type: `number` {@link ART_MEMORY_MAX_TYPE} - * - * Contains PII: false - * - * Attribute defined in OTEL: No - * - * @example 201326592 - */ -export const ART_MEMORY_MAX = 'art.memory.max'; - -/** - * Type for {@link ART_MEMORY_MAX} art.memory.max - */ -export type ART_MEMORY_MAX_TYPE = number; - -// Path: model/attributes/art/art__memory__total.json - -/** - * Total memory currently allocated to the process by the Android Runtime, in bytes `art.memory.total` - * - * Attribute Value Type: `number` {@link ART_MEMORY_TOTAL_TYPE} - * - * Contains PII: false - * - * Attribute defined in OTEL: No - * - * @example 7774208 - */ -export const ART_MEMORY_TOTAL = 'art.memory.total'; - -/** - * Type for {@link ART_MEMORY_TOTAL} art.memory.total - */ -export type ART_MEMORY_TOTAL_TYPE = number; - // Path: model/attributes/blocked_main_thread.json /** @@ -9153,6 +8933,226 @@ export const RPC_SERVICE = 'rpc.service'; */ export type RPC_SERVICE_TYPE = string; +// Path: model/attributes/runtime/runtime__art__gc__blocking_count.json + +/** + * Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime `runtime.art.gc.blocking_count` + * + * Attribute Value Type: `number` {@link RUNTIME_ART_GC_BLOCKING_COUNT_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 1 + */ +export const RUNTIME_ART_GC_BLOCKING_COUNT = 'runtime.art.gc.blocking_count'; + +/** + * Type for {@link RUNTIME_ART_GC_BLOCKING_COUNT} runtime.art.gc.blocking_count + */ +export type RUNTIME_ART_GC_BLOCKING_COUNT_TYPE = number; + +// Path: model/attributes/runtime/runtime__art__gc__blocking_time.json + +/** + * Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds `runtime.art.gc.blocking_time` + * + * Attribute Value Type: `number` {@link RUNTIME_ART_GC_BLOCKING_TIME_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 11.873 + */ +export const RUNTIME_ART_GC_BLOCKING_TIME = 'runtime.art.gc.blocking_time'; + +/** + * Type for {@link RUNTIME_ART_GC_BLOCKING_TIME} runtime.art.gc.blocking_time + */ +export type RUNTIME_ART_GC_BLOCKING_TIME_TYPE = number; + +// Path: model/attributes/runtime/runtime__art__gc__pre_oome_count.json + +/** + * Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime `runtime.art.gc.pre_oome_count` + * + * Attribute Value Type: `number` {@link RUNTIME_ART_GC_PRE_OOME_COUNT_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 0 + */ +export const RUNTIME_ART_GC_PRE_OOME_COUNT = 'runtime.art.gc.pre_oome_count'; + +/** + * Type for {@link RUNTIME_ART_GC_PRE_OOME_COUNT} runtime.art.gc.pre_oome_count + */ +export type RUNTIME_ART_GC_PRE_OOME_COUNT_TYPE = number; + +// Path: model/attributes/runtime/runtime__art__gc__total_count.json + +/** + * Total number of garbage collections performed by the Android Runtime `runtime.art.gc.total_count` + * + * Attribute Value Type: `number` {@link RUNTIME_ART_GC_TOTAL_COUNT_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 1 + */ +export const RUNTIME_ART_GC_TOTAL_COUNT = 'runtime.art.gc.total_count'; + +/** + * Type for {@link RUNTIME_ART_GC_TOTAL_COUNT} runtime.art.gc.total_count + */ +export type RUNTIME_ART_GC_TOTAL_COUNT_TYPE = number; + +// Path: model/attributes/runtime/runtime__art__gc__total_time.json + +/** + * Total time spent in garbage collection by the Android Runtime, in milliseconds `runtime.art.gc.total_time` + * + * Attribute Value Type: `number` {@link RUNTIME_ART_GC_TOTAL_TIME_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 11.807 + */ +export const RUNTIME_ART_GC_TOTAL_TIME = 'runtime.art.gc.total_time'; + +/** + * Type for {@link RUNTIME_ART_GC_TOTAL_TIME} runtime.art.gc.total_time + */ +export type RUNTIME_ART_GC_TOTAL_TIME_TYPE = number; + +// Path: model/attributes/runtime/runtime__art__gc__waiting_time.json + +/** + * Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds `runtime.art.gc.waiting_time` + * + * Attribute Value Type: `number` {@link RUNTIME_ART_GC_WAITING_TIME_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 8.054 + */ +export const RUNTIME_ART_GC_WAITING_TIME = 'runtime.art.gc.waiting_time'; + +/** + * Type for {@link RUNTIME_ART_GC_WAITING_TIME} runtime.art.gc.waiting_time + */ +export type RUNTIME_ART_GC_WAITING_TIME_TYPE = number; + +// Path: model/attributes/runtime/runtime__art__memory__free.json + +/** + * Free memory available to the process as reported by the Android Runtime, in bytes `runtime.art.memory.free` + * + * Attribute Value Type: `number` {@link RUNTIME_ART_MEMORY_FREE_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 3181568 + */ +export const RUNTIME_ART_MEMORY_FREE = 'runtime.art.memory.free'; + +/** + * Type for {@link RUNTIME_ART_MEMORY_FREE} runtime.art.memory.free + */ +export type RUNTIME_ART_MEMORY_FREE_TYPE = number; + +// Path: model/attributes/runtime/runtime__art__memory__free_until_gc.json + +/** + * Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes `runtime.art.memory.free_until_gc` + * + * Attribute Value Type: `number` {@link RUNTIME_ART_MEMORY_FREE_UNTIL_GC_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 3181568 + */ +export const RUNTIME_ART_MEMORY_FREE_UNTIL_GC = 'runtime.art.memory.free_until_gc'; + +/** + * Type for {@link RUNTIME_ART_MEMORY_FREE_UNTIL_GC} runtime.art.memory.free_until_gc + */ +export type RUNTIME_ART_MEMORY_FREE_UNTIL_GC_TYPE = number; + +// Path: model/attributes/runtime/runtime__art__memory__free_until_oome.json + +/** + * Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes `runtime.art.memory.free_until_oome` + * + * Attribute Value Type: `number` {@link RUNTIME_ART_MEMORY_FREE_UNTIL_OOME_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 196083712 + */ +export const RUNTIME_ART_MEMORY_FREE_UNTIL_OOME = 'runtime.art.memory.free_until_oome'; + +/** + * Type for {@link RUNTIME_ART_MEMORY_FREE_UNTIL_OOME} runtime.art.memory.free_until_oome + */ +export type RUNTIME_ART_MEMORY_FREE_UNTIL_OOME_TYPE = number; + +// Path: model/attributes/runtime/runtime__art__memory__max.json + +/** + * Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes `runtime.art.memory.max` + * + * Attribute Value Type: `number` {@link RUNTIME_ART_MEMORY_MAX_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 201326592 + */ +export const RUNTIME_ART_MEMORY_MAX = 'runtime.art.memory.max'; + +/** + * Type for {@link RUNTIME_ART_MEMORY_MAX} runtime.art.memory.max + */ +export type RUNTIME_ART_MEMORY_MAX_TYPE = number; + +// Path: model/attributes/runtime/runtime__art__memory__total.json + +/** + * Total memory currently allocated to the process by the Android Runtime, in bytes `runtime.art.memory.total` + * + * Attribute Value Type: `number` {@link RUNTIME_ART_MEMORY_TOTAL_TYPE} + * + * Contains PII: false + * + * Attribute defined in OTEL: No + * + * @example 7774208 + */ +export const RUNTIME_ART_MEMORY_TOTAL = 'runtime.art.memory.total'; + +/** + * Type for {@link RUNTIME_ART_MEMORY_TOTAL} runtime.art.memory.total + */ +export type RUNTIME_ART_MEMORY_TOTAL_TYPE = number; + // Path: model/attributes/runtime/runtime__build.json /** @@ -12314,17 +12314,6 @@ export const ATTRIBUTE_TYPE: Record = { [APP_VITALS_START_WARM_VALUE]: 'double', [APP_VITALS_TTFD_VALUE]: 'double', [APP_VITALS_TTID_VALUE]: 'double', - [ART_GC_BLOCKING_COUNT]: 'integer', - [ART_GC_BLOCKING_TIME]: 'double', - [ART_GC_PRE_OOME_COUNT]: 'integer', - [ART_GC_TOTAL_COUNT]: 'integer', - [ART_GC_TOTAL_TIME]: 'double', - [ART_GC_WAITING_TIME]: 'double', - [ART_MEMORY_FREE]: 'integer', - [ART_MEMORY_FREE_UNTIL_GC]: 'integer', - [ART_MEMORY_FREE_UNTIL_OOME]: 'integer', - [ART_MEMORY_MAX]: 'integer', - [ART_MEMORY_TOTAL]: 'integer', [BLOCKED_MAIN_THREAD]: 'boolean', [BROWSER_NAME]: 'string', [BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START]: 'double', @@ -12689,6 +12678,17 @@ export const ATTRIBUTE_TYPE: Record = { [RPC_METHOD]: 'string', [RPC_RESPONSE_STATUS_CODE]: 'string', [RPC_SERVICE]: 'string', + [RUNTIME_ART_GC_BLOCKING_COUNT]: 'integer', + [RUNTIME_ART_GC_BLOCKING_TIME]: 'double', + [RUNTIME_ART_GC_PRE_OOME_COUNT]: 'integer', + [RUNTIME_ART_GC_TOTAL_COUNT]: 'integer', + [RUNTIME_ART_GC_TOTAL_TIME]: 'double', + [RUNTIME_ART_GC_WAITING_TIME]: 'double', + [RUNTIME_ART_MEMORY_FREE]: 'integer', + [RUNTIME_ART_MEMORY_FREE_UNTIL_GC]: 'integer', + [RUNTIME_ART_MEMORY_FREE_UNTIL_OOME]: 'integer', + [RUNTIME_ART_MEMORY_MAX]: 'integer', + [RUNTIME_ART_MEMORY_TOTAL]: 'integer', [RUNTIME_BUILD]: 'string', [RUNTIME_NAME]: 'string', [RUNTIME_RAW_DESCRIPTION]: 'string', @@ -12899,17 +12899,6 @@ export type AttributeName = | typeof APP_VITALS_START_WARM_VALUE | typeof APP_VITALS_TTFD_VALUE | typeof APP_VITALS_TTID_VALUE - | typeof ART_GC_BLOCKING_COUNT - | typeof ART_GC_BLOCKING_TIME - | typeof ART_GC_PRE_OOME_COUNT - | typeof ART_GC_TOTAL_COUNT - | typeof ART_GC_TOTAL_TIME - | typeof ART_GC_WAITING_TIME - | typeof ART_MEMORY_FREE - | typeof ART_MEMORY_FREE_UNTIL_GC - | typeof ART_MEMORY_FREE_UNTIL_OOME - | typeof ART_MEMORY_MAX - | typeof ART_MEMORY_TOTAL | typeof BLOCKED_MAIN_THREAD | typeof BROWSER_NAME | typeof BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START @@ -13274,6 +13263,17 @@ export type AttributeName = | typeof RPC_METHOD | typeof RPC_RESPONSE_STATUS_CODE | typeof RPC_SERVICE + | typeof RUNTIME_ART_GC_BLOCKING_COUNT + | typeof RUNTIME_ART_GC_BLOCKING_TIME + | typeof RUNTIME_ART_GC_PRE_OOME_COUNT + | typeof RUNTIME_ART_GC_TOTAL_COUNT + | typeof RUNTIME_ART_GC_TOTAL_TIME + | typeof RUNTIME_ART_GC_WAITING_TIME + | typeof RUNTIME_ART_MEMORY_FREE + | typeof RUNTIME_ART_MEMORY_FREE_UNTIL_GC + | typeof RUNTIME_ART_MEMORY_FREE_UNTIL_OOME + | typeof RUNTIME_ART_MEMORY_MAX + | typeof RUNTIME_ART_MEMORY_TOTAL | typeof RUNTIME_BUILD | typeof RUNTIME_NAME | typeof RUNTIME_RAW_DESCRIPTION @@ -14305,129 +14305,6 @@ export const ATTRIBUTE_METADATA: Record = { sdks: ['sentry.cocoa', 'sentry.java.android', 'sentry.javascript.react-native', 'sentry.dart.flutter'], changelog: [{ version: '0.5.0', prs: [313], description: 'Added app.vitals.ttid.value attribute' }], }, - [ART_GC_BLOCKING_COUNT]: { - brief: 'Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime', - type: 'integer', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 1, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.blocking_count attribute' }], - }, - [ART_GC_BLOCKING_TIME]: { - brief: 'Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds', - type: 'double', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 11.873, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.blocking_time attribute' }], - }, - [ART_GC_PRE_OOME_COUNT]: { - brief: - 'Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime', - type: 'integer', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 0, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.pre_oome_count attribute' }], - }, - [ART_GC_TOTAL_COUNT]: { - brief: 'Total number of garbage collections performed by the Android Runtime', - type: 'integer', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 1, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.total_count attribute' }], - }, - [ART_GC_TOTAL_TIME]: { - brief: 'Total time spent in garbage collection by the Android Runtime, in milliseconds', - type: 'double', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 11.807, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.total_time attribute' }], - }, - [ART_GC_WAITING_TIME]: { - brief: - 'Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds', - type: 'double', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 8.054, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.gc.waiting_time attribute' }], - }, - [ART_MEMORY_FREE]: { - brief: 'Free memory available to the process as reported by the Android Runtime, in bytes', - type: 'integer', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 3181568, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.memory.free attribute' }], - }, - [ART_MEMORY_FREE_UNTIL_GC]: { - brief: 'Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes', - type: 'integer', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 3181568, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.memory.free_until_gc attribute' }], - }, - [ART_MEMORY_FREE_UNTIL_OOME]: { - brief: 'Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes', - type: 'integer', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 196083712, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.memory.free_until_oome attribute' }], - }, - [ART_MEMORY_MAX]: { - brief: 'Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes', - type: 'integer', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 201326592, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.memory.max attribute' }], - }, - [ART_MEMORY_TOTAL]: { - brief: 'Total memory currently allocated to the process by the Android Runtime, in bytes', - type: 'integer', - pii: { - isPii: 'false', - }, - isInOtel: false, - example: 7774208, - sdks: ['sentry.java.android'], - changelog: [{ version: 'next', prs: [382], description: 'Added art.memory.total attribute' }], - }, [BLOCKED_MAIN_THREAD]: { brief: 'Whether the main thread was blocked by the span.', type: 'boolean', @@ -18916,6 +18793,129 @@ export const ATTRIBUTE_METADATA: Record = { example: 'myService.BestService', changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, + [RUNTIME_ART_GC_BLOCKING_COUNT]: { + brief: 'Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 1, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [384], description: 'Added runtime.art.gc.blocking_count attribute' }], + }, + [RUNTIME_ART_GC_BLOCKING_TIME]: { + brief: 'Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds', + type: 'double', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 11.873, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [384], description: 'Added runtime.art.gc.blocking_time attribute' }], + }, + [RUNTIME_ART_GC_PRE_OOME_COUNT]: { + brief: + 'Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 0, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [384], description: 'Added runtime.art.gc.pre_oome_count attribute' }], + }, + [RUNTIME_ART_GC_TOTAL_COUNT]: { + brief: 'Total number of garbage collections performed by the Android Runtime', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 1, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [384], description: 'Added runtime.art.gc.total_count attribute' }], + }, + [RUNTIME_ART_GC_TOTAL_TIME]: { + brief: 'Total time spent in garbage collection by the Android Runtime, in milliseconds', + type: 'double', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 11.807, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [384], description: 'Added runtime.art.gc.total_time attribute' }], + }, + [RUNTIME_ART_GC_WAITING_TIME]: { + brief: + 'Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds', + type: 'double', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 8.054, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [384], description: 'Added runtime.art.gc.waiting_time attribute' }], + }, + [RUNTIME_ART_MEMORY_FREE]: { + brief: 'Free memory available to the process as reported by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 3181568, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [384], description: 'Added runtime.art.memory.free attribute' }], + }, + [RUNTIME_ART_MEMORY_FREE_UNTIL_GC]: { + brief: 'Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 3181568, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [384], description: 'Added runtime.art.memory.free_until_gc attribute' }], + }, + [RUNTIME_ART_MEMORY_FREE_UNTIL_OOME]: { + brief: 'Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 196083712, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [384], description: 'Added runtime.art.memory.free_until_oome attribute' }], + }, + [RUNTIME_ART_MEMORY_MAX]: { + brief: 'Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 201326592, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [384], description: 'Added runtime.art.memory.max attribute' }], + }, + [RUNTIME_ART_MEMORY_TOTAL]: { + brief: 'Total memory currently allocated to the process by the Android Runtime, in bytes', + type: 'integer', + pii: { + isPii: 'false', + }, + isInOtel: false, + example: 7774208, + sdks: ['sentry.java.android'], + changelog: [{ version: 'next', prs: [384], description: 'Added runtime.art.memory.total attribute' }], + }, [RUNTIME_BUILD]: { brief: 'The application build string, when it is separate from the version.', type: 'string', @@ -20624,17 +20624,6 @@ export type Attributes = { [APP_VITALS_START_WARM_VALUE]?: APP_VITALS_START_WARM_VALUE_TYPE; [APP_VITALS_TTFD_VALUE]?: APP_VITALS_TTFD_VALUE_TYPE; [APP_VITALS_TTID_VALUE]?: APP_VITALS_TTID_VALUE_TYPE; - [ART_GC_BLOCKING_COUNT]?: ART_GC_BLOCKING_COUNT_TYPE; - [ART_GC_BLOCKING_TIME]?: ART_GC_BLOCKING_TIME_TYPE; - [ART_GC_PRE_OOME_COUNT]?: ART_GC_PRE_OOME_COUNT_TYPE; - [ART_GC_TOTAL_COUNT]?: ART_GC_TOTAL_COUNT_TYPE; - [ART_GC_TOTAL_TIME]?: ART_GC_TOTAL_TIME_TYPE; - [ART_GC_WAITING_TIME]?: ART_GC_WAITING_TIME_TYPE; - [ART_MEMORY_FREE]?: ART_MEMORY_FREE_TYPE; - [ART_MEMORY_FREE_UNTIL_GC]?: ART_MEMORY_FREE_UNTIL_GC_TYPE; - [ART_MEMORY_FREE_UNTIL_OOME]?: ART_MEMORY_FREE_UNTIL_OOME_TYPE; - [ART_MEMORY_MAX]?: ART_MEMORY_MAX_TYPE; - [ART_MEMORY_TOTAL]?: ART_MEMORY_TOTAL_TYPE; [BLOCKED_MAIN_THREAD]?: BLOCKED_MAIN_THREAD_TYPE; [BROWSER_NAME]?: BROWSER_NAME_TYPE; [BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START]?: BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START_TYPE; @@ -20999,6 +20988,17 @@ export type Attributes = { [RPC_METHOD]?: RPC_METHOD_TYPE; [RPC_RESPONSE_STATUS_CODE]?: RPC_RESPONSE_STATUS_CODE_TYPE; [RPC_SERVICE]?: RPC_SERVICE_TYPE; + [RUNTIME_ART_GC_BLOCKING_COUNT]?: RUNTIME_ART_GC_BLOCKING_COUNT_TYPE; + [RUNTIME_ART_GC_BLOCKING_TIME]?: RUNTIME_ART_GC_BLOCKING_TIME_TYPE; + [RUNTIME_ART_GC_PRE_OOME_COUNT]?: RUNTIME_ART_GC_PRE_OOME_COUNT_TYPE; + [RUNTIME_ART_GC_TOTAL_COUNT]?: RUNTIME_ART_GC_TOTAL_COUNT_TYPE; + [RUNTIME_ART_GC_TOTAL_TIME]?: RUNTIME_ART_GC_TOTAL_TIME_TYPE; + [RUNTIME_ART_GC_WAITING_TIME]?: RUNTIME_ART_GC_WAITING_TIME_TYPE; + [RUNTIME_ART_MEMORY_FREE]?: RUNTIME_ART_MEMORY_FREE_TYPE; + [RUNTIME_ART_MEMORY_FREE_UNTIL_GC]?: RUNTIME_ART_MEMORY_FREE_UNTIL_GC_TYPE; + [RUNTIME_ART_MEMORY_FREE_UNTIL_OOME]?: RUNTIME_ART_MEMORY_FREE_UNTIL_OOME_TYPE; + [RUNTIME_ART_MEMORY_MAX]?: RUNTIME_ART_MEMORY_MAX_TYPE; + [RUNTIME_ART_MEMORY_TOTAL]?: RUNTIME_ART_MEMORY_TOTAL_TYPE; [RUNTIME_BUILD]?: RUNTIME_BUILD_TYPE; [RUNTIME_NAME]?: RUNTIME_NAME_TYPE; [RUNTIME_RAW_DESCRIPTION]?: RUNTIME_RAW_DESCRIPTION_TYPE; diff --git a/model/attributes/art/art__gc__blocking_count.json b/model/attributes/runtime/runtime__art__gc__blocking_count.json similarity index 69% rename from model/attributes/art/art__gc__blocking_count.json rename to model/attributes/runtime/runtime__art__gc__blocking_count.json index 873639cc..1454fe6c 100644 --- a/model/attributes/art/art__gc__blocking_count.json +++ b/model/attributes/runtime/runtime__art__gc__blocking_count.json @@ -1,5 +1,5 @@ { - "key": "art.gc.blocking_count", + "key": "runtime.art.gc.blocking_count", "brief": "Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime", "type": "integer", "pii": { @@ -11,8 +11,8 @@ "changelog": [ { "version": "next", - "prs": [382], - "description": "Added art.gc.blocking_count attribute" + "prs": [384], + "description": "Added runtime.art.gc.blocking_count attribute" } ] } diff --git a/model/attributes/art/art__gc__blocking_time.json b/model/attributes/runtime/runtime__art__gc__blocking_time.json similarity index 71% rename from model/attributes/art/art__gc__blocking_time.json rename to model/attributes/runtime/runtime__art__gc__blocking_time.json index c3e88820..f388db94 100644 --- a/model/attributes/art/art__gc__blocking_time.json +++ b/model/attributes/runtime/runtime__art__gc__blocking_time.json @@ -1,5 +1,5 @@ { - "key": "art.gc.blocking_time", + "key": "runtime.art.gc.blocking_time", "brief": "Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds", "type": "double", "pii": { @@ -11,8 +11,8 @@ "changelog": [ { "version": "next", - "prs": [382], - "description": "Added art.gc.blocking_time attribute" + "prs": [384], + "description": "Added runtime.art.gc.blocking_time attribute" } ] } diff --git a/model/attributes/art/art__gc__pre_oome_count.json b/model/attributes/runtime/runtime__art__gc__pre_oome_count.json similarity index 70% rename from model/attributes/art/art__gc__pre_oome_count.json rename to model/attributes/runtime/runtime__art__gc__pre_oome_count.json index d574d39a..775648a9 100644 --- a/model/attributes/art/art__gc__pre_oome_count.json +++ b/model/attributes/runtime/runtime__art__gc__pre_oome_count.json @@ -1,5 +1,5 @@ { - "key": "art.gc.pre_oome_count", + "key": "runtime.art.gc.pre_oome_count", "brief": "Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime", "type": "integer", "pii": { @@ -11,8 +11,8 @@ "changelog": [ { "version": "next", - "prs": [382], - "description": "Added art.gc.pre_oome_count attribute" + "prs": [384], + "description": "Added runtime.art.gc.pre_oome_count attribute" } ] } diff --git a/model/attributes/art/art__gc__total_count.json b/model/attributes/runtime/runtime__art__gc__total_count.json similarity index 68% rename from model/attributes/art/art__gc__total_count.json rename to model/attributes/runtime/runtime__art__gc__total_count.json index 2eeaf836..245eca5d 100644 --- a/model/attributes/art/art__gc__total_count.json +++ b/model/attributes/runtime/runtime__art__gc__total_count.json @@ -1,5 +1,5 @@ { - "key": "art.gc.total_count", + "key": "runtime.art.gc.total_count", "brief": "Total number of garbage collections performed by the Android Runtime", "type": "integer", "pii": { @@ -11,8 +11,8 @@ "changelog": [ { "version": "next", - "prs": [382], - "description": "Added art.gc.total_count attribute" + "prs": [384], + "description": "Added runtime.art.gc.total_count attribute" } ] } diff --git a/model/attributes/art/art__gc__total_time.json b/model/attributes/runtime/runtime__art__gc__total_time.json similarity index 70% rename from model/attributes/art/art__gc__total_time.json rename to model/attributes/runtime/runtime__art__gc__total_time.json index b6fa4b15..e7d0ca6b 100644 --- a/model/attributes/art/art__gc__total_time.json +++ b/model/attributes/runtime/runtime__art__gc__total_time.json @@ -1,5 +1,5 @@ { - "key": "art.gc.total_time", + "key": "runtime.art.gc.total_time", "brief": "Total time spent in garbage collection by the Android Runtime, in milliseconds", "type": "double", "pii": { @@ -11,8 +11,8 @@ "changelog": [ { "version": "next", - "prs": [382], - "description": "Added art.gc.total_time attribute" + "prs": [384], + "description": "Added runtime.art.gc.total_time attribute" } ] } diff --git a/model/attributes/art/art__gc__waiting_time.json b/model/attributes/runtime/runtime__art__gc__waiting_time.json similarity index 71% rename from model/attributes/art/art__gc__waiting_time.json rename to model/attributes/runtime/runtime__art__gc__waiting_time.json index 3420ec38..aba20e5d 100644 --- a/model/attributes/art/art__gc__waiting_time.json +++ b/model/attributes/runtime/runtime__art__gc__waiting_time.json @@ -1,5 +1,5 @@ { - "key": "art.gc.waiting_time", + "key": "runtime.art.gc.waiting_time", "brief": "Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds", "type": "double", "pii": { @@ -11,8 +11,8 @@ "changelog": [ { "version": "next", - "prs": [382], - "description": "Added art.gc.waiting_time attribute" + "prs": [384], + "description": "Added runtime.art.gc.waiting_time attribute" } ] } diff --git a/model/attributes/art/art__memory__free.json b/model/attributes/runtime/runtime__art__memory__free.json similarity index 71% rename from model/attributes/art/art__memory__free.json rename to model/attributes/runtime/runtime__art__memory__free.json index 93ffee88..dca18107 100644 --- a/model/attributes/art/art__memory__free.json +++ b/model/attributes/runtime/runtime__art__memory__free.json @@ -1,5 +1,5 @@ { - "key": "art.memory.free", + "key": "runtime.art.memory.free", "brief": "Free memory available to the process as reported by the Android Runtime, in bytes", "type": "integer", "pii": { @@ -11,8 +11,8 @@ "changelog": [ { "version": "next", - "prs": [382], - "description": "Added art.memory.free attribute" + "prs": [384], + "description": "Added runtime.art.memory.free attribute" } ] } diff --git a/model/attributes/art/art__memory__free_until_gc.json b/model/attributes/runtime/runtime__art__memory__free_until_gc.json similarity index 69% rename from model/attributes/art/art__memory__free_until_gc.json rename to model/attributes/runtime/runtime__art__memory__free_until_gc.json index e5c9628a..cb64154f 100644 --- a/model/attributes/art/art__memory__free_until_gc.json +++ b/model/attributes/runtime/runtime__art__memory__free_until_gc.json @@ -1,5 +1,5 @@ { - "key": "art.memory.free_until_gc", + "key": "runtime.art.memory.free_until_gc", "brief": "Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes", "type": "integer", "pii": { @@ -11,8 +11,8 @@ "changelog": [ { "version": "next", - "prs": [382], - "description": "Added art.memory.free_until_gc attribute" + "prs": [384], + "description": "Added runtime.art.memory.free_until_gc attribute" } ] } diff --git a/model/attributes/art/art__memory__free_until_oome.json b/model/attributes/runtime/runtime__art__memory__free_until_oome.json similarity index 68% rename from model/attributes/art/art__memory__free_until_oome.json rename to model/attributes/runtime/runtime__art__memory__free_until_oome.json index e3506577..3575d8e0 100644 --- a/model/attributes/art/art__memory__free_until_oome.json +++ b/model/attributes/runtime/runtime__art__memory__free_until_oome.json @@ -1,5 +1,5 @@ { - "key": "art.memory.free_until_oome", + "key": "runtime.art.memory.free_until_oome", "brief": "Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes", "type": "integer", "pii": { @@ -11,8 +11,8 @@ "changelog": [ { "version": "next", - "prs": [382], - "description": "Added art.memory.free_until_oome attribute" + "prs": [384], + "description": "Added runtime.art.memory.free_until_oome attribute" } ] } diff --git a/model/attributes/art/art__memory__max.json b/model/attributes/runtime/runtime__art__memory__max.json similarity index 72% rename from model/attributes/art/art__memory__max.json rename to model/attributes/runtime/runtime__art__memory__max.json index cbb4737e..406b7f6f 100644 --- a/model/attributes/art/art__memory__max.json +++ b/model/attributes/runtime/runtime__art__memory__max.json @@ -1,5 +1,5 @@ { - "key": "art.memory.max", + "key": "runtime.art.memory.max", "brief": "Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes", "type": "integer", "pii": { @@ -11,8 +11,8 @@ "changelog": [ { "version": "next", - "prs": [382], - "description": "Added art.memory.max attribute" + "prs": [384], + "description": "Added runtime.art.memory.max attribute" } ] } diff --git a/model/attributes/art/art__memory__total.json b/model/attributes/runtime/runtime__art__memory__total.json similarity index 70% rename from model/attributes/art/art__memory__total.json rename to model/attributes/runtime/runtime__art__memory__total.json index 349f863c..f10a7447 100644 --- a/model/attributes/art/art__memory__total.json +++ b/model/attributes/runtime/runtime__art__memory__total.json @@ -1,5 +1,5 @@ { - "key": "art.memory.total", + "key": "runtime.art.memory.total", "brief": "Total memory currently allocated to the process by the Android Runtime, in bytes", "type": "integer", "pii": { @@ -11,8 +11,8 @@ "changelog": [ { "version": "next", - "prs": [382], - "description": "Added art.memory.total attribute" + "prs": [384], + "description": "Added runtime.art.memory.total attribute" } ] } diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index e32fb0cd..52aee218 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -937,120 +937,6 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: 1234.56 """ - # Path: model/attributes/art/art__gc__blocking_count.json - ART_GC_BLOCKING_COUNT: Literal["art.gc.blocking_count"] = "art.gc.blocking_count" - """Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime - - Type: int - Contains PII: false - Defined in OTEL: No - Example: 1 - """ - - # Path: model/attributes/art/art__gc__blocking_time.json - ART_GC_BLOCKING_TIME: Literal["art.gc.blocking_time"] = "art.gc.blocking_time" - """Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds - - Type: float - Contains PII: false - Defined in OTEL: No - Example: 11.873 - """ - - # Path: model/attributes/art/art__gc__pre_oome_count.json - ART_GC_PRE_OOME_COUNT: Literal["art.gc.pre_oome_count"] = "art.gc.pre_oome_count" - """Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime - - Type: int - Contains PII: false - Defined in OTEL: No - Example: 0 - """ - - # Path: model/attributes/art/art__gc__total_count.json - ART_GC_TOTAL_COUNT: Literal["art.gc.total_count"] = "art.gc.total_count" - """Total number of garbage collections performed by the Android Runtime - - Type: int - Contains PII: false - Defined in OTEL: No - Example: 1 - """ - - # Path: model/attributes/art/art__gc__total_time.json - ART_GC_TOTAL_TIME: Literal["art.gc.total_time"] = "art.gc.total_time" - """Total time spent in garbage collection by the Android Runtime, in milliseconds - - Type: float - Contains PII: false - Defined in OTEL: No - Example: 11.807 - """ - - # Path: model/attributes/art/art__gc__waiting_time.json - ART_GC_WAITING_TIME: Literal["art.gc.waiting_time"] = "art.gc.waiting_time" - """Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds - - Type: float - Contains PII: false - Defined in OTEL: No - Example: 8.054 - """ - - # Path: model/attributes/art/art__memory__free.json - ART_MEMORY_FREE: Literal["art.memory.free"] = "art.memory.free" - """Free memory available to the process as reported by the Android Runtime, in bytes - - Type: int - Contains PII: false - Defined in OTEL: No - Example: 3181568 - """ - - # Path: model/attributes/art/art__memory__free_until_gc.json - ART_MEMORY_FREE_UNTIL_GC: Literal["art.memory.free_until_gc"] = ( - "art.memory.free_until_gc" - ) - """Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes - - Type: int - Contains PII: false - Defined in OTEL: No - Example: 3181568 - """ - - # Path: model/attributes/art/art__memory__free_until_oome.json - ART_MEMORY_FREE_UNTIL_OOME: Literal["art.memory.free_until_oome"] = ( - "art.memory.free_until_oome" - ) - """Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes - - Type: int - Contains PII: false - Defined in OTEL: No - Example: 196083712 - """ - - # Path: model/attributes/art/art__memory__max.json - ART_MEMORY_MAX: Literal["art.memory.max"] = "art.memory.max" - """Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes - - Type: int - Contains PII: false - Defined in OTEL: No - Example: 201326592 - """ - - # Path: model/attributes/art/art__memory__total.json - ART_MEMORY_TOTAL: Literal["art.memory.total"] = "art.memory.total" - """Total memory currently allocated to the process by the Android Runtime, in bytes - - Type: int - Contains PII: false - Defined in OTEL: No - Example: 7774208 - """ - # 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. @@ -5156,6 +5042,136 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: "myService.BestService" """ + # Path: model/attributes/runtime/runtime__art__gc__blocking_count.json + RUNTIME_ART_GC_BLOCKING_COUNT: Literal["runtime.art.gc.blocking_count"] = ( + "runtime.art.gc.blocking_count" + ) + """Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 1 + """ + + # Path: model/attributes/runtime/runtime__art__gc__blocking_time.json + RUNTIME_ART_GC_BLOCKING_TIME: Literal["runtime.art.gc.blocking_time"] = ( + "runtime.art.gc.blocking_time" + ) + """Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds + + Type: float + Contains PII: false + Defined in OTEL: No + Example: 11.873 + """ + + # Path: model/attributes/runtime/runtime__art__gc__pre_oome_count.json + RUNTIME_ART_GC_PRE_OOME_COUNT: Literal["runtime.art.gc.pre_oome_count"] = ( + "runtime.art.gc.pre_oome_count" + ) + """Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 0 + """ + + # Path: model/attributes/runtime/runtime__art__gc__total_count.json + RUNTIME_ART_GC_TOTAL_COUNT: Literal["runtime.art.gc.total_count"] = ( + "runtime.art.gc.total_count" + ) + """Total number of garbage collections performed by the Android Runtime + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 1 + """ + + # Path: model/attributes/runtime/runtime__art__gc__total_time.json + RUNTIME_ART_GC_TOTAL_TIME: Literal["runtime.art.gc.total_time"] = ( + "runtime.art.gc.total_time" + ) + """Total time spent in garbage collection by the Android Runtime, in milliseconds + + Type: float + Contains PII: false + Defined in OTEL: No + Example: 11.807 + """ + + # Path: model/attributes/runtime/runtime__art__gc__waiting_time.json + RUNTIME_ART_GC_WAITING_TIME: Literal["runtime.art.gc.waiting_time"] = ( + "runtime.art.gc.waiting_time" + ) + """Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds + + Type: float + Contains PII: false + Defined in OTEL: No + Example: 8.054 + """ + + # Path: model/attributes/runtime/runtime__art__memory__free.json + RUNTIME_ART_MEMORY_FREE: Literal["runtime.art.memory.free"] = ( + "runtime.art.memory.free" + ) + """Free memory available to the process as reported by the Android Runtime, in bytes + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 3181568 + """ + + # Path: model/attributes/runtime/runtime__art__memory__free_until_gc.json + RUNTIME_ART_MEMORY_FREE_UNTIL_GC: Literal["runtime.art.memory.free_until_gc"] = ( + "runtime.art.memory.free_until_gc" + ) + """Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 3181568 + """ + + # Path: model/attributes/runtime/runtime__art__memory__free_until_oome.json + RUNTIME_ART_MEMORY_FREE_UNTIL_OOME: Literal[ + "runtime.art.memory.free_until_oome" + ] = "runtime.art.memory.free_until_oome" + """Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 196083712 + """ + + # Path: model/attributes/runtime/runtime__art__memory__max.json + RUNTIME_ART_MEMORY_MAX: Literal["runtime.art.memory.max"] = "runtime.art.memory.max" + """Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 201326592 + """ + + # Path: model/attributes/runtime/runtime__art__memory__total.json + RUNTIME_ART_MEMORY_TOTAL: Literal["runtime.art.memory.total"] = ( + "runtime.art.memory.total" + ) + """Total memory currently allocated to the process by the Android Runtime, in bytes + + Type: int + Contains PII: false + Defined in OTEL: No + Example: 7774208 + """ + # Path: model/attributes/runtime/runtime__build.json RUNTIME_BUILD: Literal["runtime.build"] = "runtime.build" """The application build string, when it is separate from the version. @@ -7764,167 +7780,6 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), ], ), - "art.gc.blocking_count": AttributeMetadata( - brief="Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime", - type=AttributeType.INTEGER, - pii=PiiInfo(isPii=IsPii.FALSE), - is_in_otel=False, - example=1, - sdks=["sentry.java.android"], - changelog=[ - ChangelogEntry( - version="next", - prs=[382], - description="Added art.gc.blocking_count attribute", - ), - ], - ), - "art.gc.blocking_time": AttributeMetadata( - brief="Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds", - type=AttributeType.DOUBLE, - pii=PiiInfo(isPii=IsPii.FALSE), - is_in_otel=False, - example=11.873, - sdks=["sentry.java.android"], - changelog=[ - ChangelogEntry( - version="next", - prs=[382], - description="Added art.gc.blocking_time attribute", - ), - ], - ), - "art.gc.pre_oome_count": AttributeMetadata( - brief="Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime", - type=AttributeType.INTEGER, - pii=PiiInfo(isPii=IsPii.FALSE), - is_in_otel=False, - example=0, - sdks=["sentry.java.android"], - changelog=[ - ChangelogEntry( - version="next", - prs=[382], - description="Added art.gc.pre_oome_count attribute", - ), - ], - ), - "art.gc.total_count": AttributeMetadata( - brief="Total number of garbage collections performed by the Android Runtime", - type=AttributeType.INTEGER, - pii=PiiInfo(isPii=IsPii.FALSE), - is_in_otel=False, - example=1, - sdks=["sentry.java.android"], - changelog=[ - ChangelogEntry( - version="next", - prs=[382], - description="Added art.gc.total_count attribute", - ), - ], - ), - "art.gc.total_time": AttributeMetadata( - brief="Total time spent in garbage collection by the Android Runtime, in milliseconds", - type=AttributeType.DOUBLE, - pii=PiiInfo(isPii=IsPii.FALSE), - is_in_otel=False, - example=11.807, - sdks=["sentry.java.android"], - changelog=[ - ChangelogEntry( - version="next", - prs=[382], - description="Added art.gc.total_time attribute", - ), - ], - ), - "art.gc.waiting_time": AttributeMetadata( - brief="Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds", - type=AttributeType.DOUBLE, - pii=PiiInfo(isPii=IsPii.FALSE), - is_in_otel=False, - example=8.054, - sdks=["sentry.java.android"], - changelog=[ - ChangelogEntry( - version="next", - prs=[382], - description="Added art.gc.waiting_time attribute", - ), - ], - ), - "art.memory.free": AttributeMetadata( - brief="Free memory available to the process as reported by the Android Runtime, in bytes", - type=AttributeType.INTEGER, - pii=PiiInfo(isPii=IsPii.FALSE), - is_in_otel=False, - example=3181568, - sdks=["sentry.java.android"], - changelog=[ - ChangelogEntry( - version="next", prs=[382], description="Added art.memory.free attribute" - ), - ], - ), - "art.memory.free_until_gc": AttributeMetadata( - brief="Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes", - type=AttributeType.INTEGER, - pii=PiiInfo(isPii=IsPii.FALSE), - is_in_otel=False, - example=3181568, - sdks=["sentry.java.android"], - changelog=[ - ChangelogEntry( - version="next", - prs=[382], - description="Added art.memory.free_until_gc attribute", - ), - ], - ), - "art.memory.free_until_oome": AttributeMetadata( - brief="Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes", - type=AttributeType.INTEGER, - pii=PiiInfo(isPii=IsPii.FALSE), - is_in_otel=False, - example=196083712, - sdks=["sentry.java.android"], - changelog=[ - ChangelogEntry( - version="next", - prs=[382], - description="Added art.memory.free_until_oome attribute", - ), - ], - ), - "art.memory.max": AttributeMetadata( - brief="Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes", - type=AttributeType.INTEGER, - pii=PiiInfo(isPii=IsPii.FALSE), - is_in_otel=False, - example=201326592, - sdks=["sentry.java.android"], - changelog=[ - ChangelogEntry( - version="next", prs=[382], description="Added art.memory.max attribute" - ), - ], - ), - "art.memory.total": AttributeMetadata( - brief="Total memory currently allocated to the process by the Android Runtime, in bytes", - type=AttributeType.INTEGER, - pii=PiiInfo(isPii=IsPii.FALSE), - is_in_otel=False, - example=7774208, - sdks=["sentry.java.android"], - changelog=[ - ChangelogEntry( - version="next", - prs=[382], - description="Added art.memory.total attribute", - ), - ], - ), "blocked_main_thread": AttributeMetadata( brief="Whether the main thread was blocked by the span.", type=AttributeType.BOOLEAN, @@ -12582,6 +12437,171 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ChangelogEntry(version="0.0.0"), ], ), + "runtime.art.gc.blocking_count": AttributeMetadata( + brief="Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=1, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[384], + description="Added runtime.art.gc.blocking_count attribute", + ), + ], + ), + "runtime.art.gc.blocking_time": AttributeMetadata( + brief="Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=11.873, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[384], + description="Added runtime.art.gc.blocking_time attribute", + ), + ], + ), + "runtime.art.gc.pre_oome_count": AttributeMetadata( + brief="Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=0, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[384], + description="Added runtime.art.gc.pre_oome_count attribute", + ), + ], + ), + "runtime.art.gc.total_count": AttributeMetadata( + brief="Total number of garbage collections performed by the Android Runtime", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=1, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[384], + description="Added runtime.art.gc.total_count attribute", + ), + ], + ), + "runtime.art.gc.total_time": AttributeMetadata( + brief="Total time spent in garbage collection by the Android Runtime, in milliseconds", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=11.807, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[384], + description="Added runtime.art.gc.total_time attribute", + ), + ], + ), + "runtime.art.gc.waiting_time": AttributeMetadata( + brief="Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=8.054, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[384], + description="Added runtime.art.gc.waiting_time attribute", + ), + ], + ), + "runtime.art.memory.free": AttributeMetadata( + brief="Free memory available to the process as reported by the Android Runtime, in bytes", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=3181568, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[384], + description="Added runtime.art.memory.free attribute", + ), + ], + ), + "runtime.art.memory.free_until_gc": AttributeMetadata( + brief="Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=3181568, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[384], + description="Added runtime.art.memory.free_until_gc attribute", + ), + ], + ), + "runtime.art.memory.free_until_oome": AttributeMetadata( + brief="Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=196083712, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[384], + description="Added runtime.art.memory.free_until_oome attribute", + ), + ], + ), + "runtime.art.memory.max": AttributeMetadata( + brief="Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=201326592, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[384], + description="Added runtime.art.memory.max attribute", + ), + ], + ), + "runtime.art.memory.total": AttributeMetadata( + brief="Total memory currently allocated to the process by the Android Runtime, in bytes", + type=AttributeType.INTEGER, + pii=PiiInfo(isPii=IsPii.FALSE), + is_in_otel=False, + example=7774208, + sdks=["sentry.java.android"], + changelog=[ + ChangelogEntry( + version="next", + prs=[384], + description="Added runtime.art.memory.total attribute", + ), + ], + ), "runtime.build": AttributeMetadata( brief="The application build string, when it is separate from the version.", type=AttributeType.STRING, @@ -14360,17 +14380,6 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "app_start_cold": float, "app_start_type": str, "app_start_warm": float, - "art.gc.blocking_count": int, - "art.gc.blocking_time": float, - "art.gc.pre_oome_count": int, - "art.gc.total_count": int, - "art.gc.total_time": float, - "art.gc.waiting_time": float, - "art.memory.free": int, - "art.memory.free_until_gc": int, - "art.memory.free_until_oome": int, - "art.memory.max": int, - "art.memory.total": int, "blocked_main_thread": bool, "browser.name": str, "browser.performance.navigation.activation_start": float, @@ -14735,6 +14744,17 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "rpc.method": str, "rpc.response.status_code": str, "rpc.service": str, + "runtime.art.gc.blocking_count": int, + "runtime.art.gc.blocking_time": float, + "runtime.art.gc.pre_oome_count": int, + "runtime.art.gc.total_count": int, + "runtime.art.gc.total_time": float, + "runtime.art.gc.waiting_time": float, + "runtime.art.memory.free": int, + "runtime.art.memory.free_until_gc": int, + "runtime.art.memory.free_until_oome": int, + "runtime.art.memory.max": int, + "runtime.art.memory.total": int, "runtime.build": str, "runtime.name": str, "runtime.raw_description": str,