diff --git a/generated/attributes/all.md b/generated/attributes/all.md index 42516ff..8173de8 100644 --- a/generated/attributes/all.md +++ b/generated/attributes/all.md @@ -4,7 +4,7 @@ This page lists all available attributes across all categories. -Total attributes: 422 +Total attributes: 428 ## Stable Attributes @@ -31,6 +31,9 @@ Total attributes: 422 | [`browser.script.invoker_type`](./browser.md#browserscriptinvoker_type) | Browser script entry point type. | | [`browser.script.source_char_position`](./browser.md#browserscriptsource_char_position) | A number representing the script character position of the script. | | [`browser.version`](./browser.md#browserversion) | The version of the browser. | +| [`browser.web_vital.cls.value`](./browser.md#browserweb_vitalclsvalue) | The value of the recorded Cumulative Layout Shift (CLS) web vital | +| [`browser.web_vital.inp.value`](./browser.md#browserweb_vitalinpvalue) | The value of the recorded Interaction to Next Paint (INP) web vital | +| [`browser.web_vital.lcp.value`](./browser.md#browserweb_vitallcpvalue) | The value of the recorded Largest Contentful Paint (LCP) web vital | | [`cache.hit`](./cache.md#cachehit) | If the cache was hit during this span. | | [`cache.item_size`](./cache.md#cacheitem_size) | The size of the requested item in the cache. In bytes. | | [`cache.key`](./cache.md#cachekey) | The key of the cache accessed. | @@ -379,6 +382,7 @@ Total attributes: 422 | [`ai.top_k`](./ai.md#aitop_k) | [`gen_ai.request.top_k`](./gen_ai.md#gen_airequesttop_k) | | [`ai.top_p`](./ai.md#aitop_p) | [`gen_ai.request.top_p`](./gen_ai.md#gen_airequesttop_p) | | [`ai.total_tokens.used`](./ai.md#aitotal_tokensused) | [`gen_ai.usage.total_tokens`](./gen_ai.md#gen_aiusagetotal_tokens) | +| [`cls`](./general.md#cls) | [`browser.web_vital.cls.value`](./browser.md#browserweb_vitalclsvalue) | | [`code.filepath`](./code.md#codefilepath) | [`code.file.path`](./code.md#codefilepath) | | [`code.function`](./code.md#codefunction) | [`code.function.name`](./code.md#codefunctionname) | | [`code.lineno`](./code.md#codelineno) | [`code.line.number`](./code.md#codelinenumber) | @@ -410,6 +414,8 @@ Total attributes: 422 | [`http.target`](./http.md#httptarget) | [`url.path`](./url.md#urlpath) | | [`http.url`](./http.md#httpurl) | [`url.full`](./url.md#urlfull) | | [`http.user_agent`](./http.md#httpuser_agent) | [`user_agent.original`](./user_agent.md#user_agentoriginal) | +| [`inp`](./general.md#inp) | [`browser.web_vital.inp.value`](./browser.md#browserweb_vitalinpvalue) | +| [`lcp`](./general.md#lcp) | [`browser.web_vital.lcp.value`](./browser.md#browserweb_vitallcpvalue) | | [`method`](./general.md#method) | [`http.request.method`](./http.md#httprequestmethod) | | [`net.host.ip`](./net.md#nethostip) | [`network.local.address`](./network.md#networklocaladdress) | | [`net.host.name`](./net.md#nethostname) | [`server.address`](./server.md#serveraddress) | diff --git a/generated/attributes/browser.md b/generated/attributes/browser.md index 2295102..ef0834c 100644 --- a/generated/attributes/browser.md +++ b/generated/attributes/browser.md @@ -9,6 +9,9 @@ - [browser.script.invoker_type](#browserscriptinvoker_type) - [browser.script.source_char_position](#browserscriptsource_char_position) - [browser.version](#browserversion) + - [browser.web_vital.cls.value](#browserweb_vitalclsvalue) + - [browser.web_vital.inp.value](#browserweb_vitalinpvalue) + - [browser.web_vital.lcp.value](#browserweb_vitallcpvalue) ## Stable Attributes @@ -80,3 +83,39 @@ The version of the browser. | Example | `120.0.6099.130` | | Aliases | `sentry.browser.version` | +### browser.web_vital.cls.value + +The value of the recorded Cumulative Layout Shift (CLS) web vital + +| Property | Value | +| --- | --- | +| Type | `double` | +| Has PII | maybe | +| Exists in OpenTelemetry | No | +| Example | `0.2361` | +| Aliases | `cls` | + +### browser.web_vital.inp.value + +The value of the recorded Interaction to Next Paint (INP) web vital + +| Property | Value | +| --- | --- | +| Type | `double` | +| Has PII | maybe | +| Exists in OpenTelemetry | No | +| Example | `200` | +| Aliases | `inp` | + +### browser.web_vital.lcp.value + +The value of the recorded Largest Contentful Paint (LCP) web vital + +| Property | Value | +| --- | --- | +| Type | `double` | +| Has PII | maybe | +| Exists in OpenTelemetry | No | +| Example | `2500` | +| Aliases | `lcp` | + diff --git a/generated/attributes/general.md b/generated/attributes/general.md index 5cb5944..429fc1a 100644 --- a/generated/attributes/general.md +++ b/generated/attributes/general.md @@ -10,8 +10,11 @@ - [previous_route](#previous_route) - [type](#type) - [Deprecated Attributes](#deprecated-attributes) + - [cls](#cls) - [environment](#environment) - [fs_error](#fs_error) + - [inp](#inp) + - [lcp](#lcp) - [method](#method) - [profile_id](#profile_id) - [release](#release) @@ -92,6 +95,20 @@ More granular type of the operation happening. These attributes are deprecated and will be removed in a future version. Please use the recommended replacements. +### cls + +The value of the recorded Cumulative Layout Shift (CLS) web vital + +| Property | Value | +| --- | --- | +| Type | `double` | +| Has PII | maybe | +| Exists in OpenTelemetry | No | +| Example | `0.2361` | +| Deprecated | Yes, use `browser.web_vital.cls.value` instead | +| Deprecation Reason | The CLS web vital is now recorded as a browser.web_vital.cls.value attribute. | +| Aliases | `browser.web_vital.cls.value` | + ### environment The sentry environment. @@ -118,6 +135,34 @@ The error message of a file system error. | Deprecated | Yes, use `error.type` instead | | Deprecation Reason | This attribute is not part of the OpenTelemetry specification and error.type fits much better. | +### inp + +The value of the recorded Interaction to Next Paint (INP) web vital + +| Property | Value | +| --- | --- | +| Type | `double` | +| Has PII | maybe | +| Exists in OpenTelemetry | No | +| Example | `200` | +| Deprecated | Yes, use `browser.web_vital.inp.value` instead | +| Deprecation Reason | The INP web vital is now recorded as a browser.web_vital.inp.value attribute. | +| Aliases | `browser.web_vital.inp.value` | + +### lcp + +The value of the recorded Largest Contentful Paint (LCP) web vital + +| Property | Value | +| --- | --- | +| Type | `double` | +| Has PII | maybe | +| Exists in OpenTelemetry | No | +| Example | `2500` | +| Deprecated | Yes, use `browser.web_vital.lcp.value` instead | +| Deprecation Reason | The LCP web vital is now recorded as a browser.web_vital.lcp.value attribute. | +| Aliases | `browser.web_vital.lcp.value` | + ### method The HTTP method used. diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 7a5c875..dc2903d 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -878,6 +878,72 @@ export const BROWSER_VERSION = 'browser.version'; */ export type BROWSER_VERSION_TYPE = string; +// Path: model/attributes/browser/browser__web_vital__cls__value.json + +/** + * The value of the recorded Cumulative Layout Shift (CLS) web vital `browser.web_vital.cls.value` + * + * Attribute Value Type: `number` {@link BROWSER_WEB_VITAL_CLS_VALUE_TYPE} + * + * Contains PII: maybe + * + * Attribute defined in OTEL: No + * + * Aliases: {@link CLS} `cls` + * + * @example 0.2361 + */ +export const BROWSER_WEB_VITAL_CLS_VALUE = 'browser.web_vital.cls.value'; + +/** + * Type for {@link BROWSER_WEB_VITAL_CLS_VALUE} browser.web_vital.cls.value + */ +export type BROWSER_WEB_VITAL_CLS_VALUE_TYPE = number; + +// Path: model/attributes/browser/browser__web_vital__inp__value.json + +/** + * The value of the recorded Interaction to Next Paint (INP) web vital `browser.web_vital.inp.value` + * + * Attribute Value Type: `number` {@link BROWSER_WEB_VITAL_INP_VALUE_TYPE} + * + * Contains PII: maybe + * + * Attribute defined in OTEL: No + * + * Aliases: {@link INP} `inp` + * + * @example 200 + */ +export const BROWSER_WEB_VITAL_INP_VALUE = 'browser.web_vital.inp.value'; + +/** + * Type for {@link BROWSER_WEB_VITAL_INP_VALUE} browser.web_vital.inp.value + */ +export type BROWSER_WEB_VITAL_INP_VALUE_TYPE = number; + +// Path: model/attributes/browser/browser__web_vital__lcp__value.json + +/** + * The value of the recorded Largest Contentful Paint (LCP) web vital `browser.web_vital.lcp.value` + * + * Attribute Value Type: `number` {@link BROWSER_WEB_VITAL_LCP_VALUE_TYPE} + * + * Contains PII: maybe + * + * Attribute defined in OTEL: No + * + * Aliases: {@link LCP} `lcp` + * + * @example 2500 + */ +export const BROWSER_WEB_VITAL_LCP_VALUE = 'browser.web_vital.lcp.value'; + +/** + * Type for {@link BROWSER_WEB_VITAL_LCP_VALUE} browser.web_vital.lcp.value + */ +export type BROWSER_WEB_VITAL_LCP_VALUE_TYPE = number; + // Path: model/attributes/cache/cache__hit.json /** @@ -1100,6 +1166,29 @@ export const CLOUDFLARE_D1_ROWS_WRITTEN = 'cloudflare.d1.rows_written'; */ export type CLOUDFLARE_D1_ROWS_WRITTEN_TYPE = number; +// Path: model/attributes/cls.json + +/** + * The value of the recorded Cumulative Layout Shift (CLS) web vital `cls` + * + * Attribute Value Type: `number` {@link CLS_TYPE} + * + * Contains PII: maybe + * + * Attribute defined in OTEL: No + * + * Aliases: {@link BROWSER_WEB_VITAL_CLS_VALUE} `browser.web_vital.cls.value` + * + * @deprecated Use {@link BROWSER_WEB_VITAL_CLS_VALUE} (browser.web_vital.cls.value) instead - The CLS web vital is now recorded as a browser.web_vital.cls.value attribute. + * @example 0.2361 + */ +export const CLS = 'cls'; + +/** + * Type for {@link CLS} cls + */ +export type CLS_TYPE = number; + // Path: model/attributes/code/code__filepath.json /** @@ -3921,6 +4010,29 @@ export const ID = 'id'; */ export type ID_TYPE = string; +// Path: model/attributes/inp.json + +/** + * The value of the recorded Interaction to Next Paint (INP) web vital `inp` + * + * Attribute Value Type: `number` {@link INP_TYPE} + * + * Contains PII: maybe + * + * Attribute defined in OTEL: No + * + * Aliases: {@link BROWSER_WEB_VITAL_INP_VALUE} `browser.web_vital.inp.value` + * + * @deprecated Use {@link BROWSER_WEB_VITAL_INP_VALUE} (browser.web_vital.inp.value) instead - The INP web vital is now recorded as a browser.web_vital.inp.value attribute. + * @example 200 + */ +export const INP = 'inp'; + +/** + * Type for {@link INP} inp + */ +export type INP_TYPE = number; + // Path: model/attributes/jvm/jvm__gc__action.json /** @@ -4041,6 +4153,29 @@ export const JVM_THREAD_STATE = 'jvm.thread.state'; */ export type JVM_THREAD_STATE_TYPE = string; +// Path: model/attributes/lcp.json + +/** + * The value of the recorded Largest Contentful Paint (LCP) web vital `lcp` + * + * Attribute Value Type: `number` {@link LCP_TYPE} + * + * Contains PII: maybe + * + * Attribute defined in OTEL: No + * + * Aliases: {@link BROWSER_WEB_VITAL_LCP_VALUE} `browser.web_vital.lcp.value` + * + * @deprecated Use {@link BROWSER_WEB_VITAL_LCP_VALUE} (browser.web_vital.lcp.value) instead - The LCP web vital is now recorded as a browser.web_vital.lcp.value attribute. + * @example 2500 + */ +export const LCP = 'lcp'; + +/** + * Type for {@link LCP} lcp + */ +export type LCP_TYPE = number; + // Path: model/attributes/lcp/lcp__element.json /** @@ -8849,6 +8984,9 @@ export const ATTRIBUTE_TYPE: Record = { [BROWSER_SCRIPT_INVOKER_TYPE]: 'string', [BROWSER_SCRIPT_SOURCE_CHAR_POSITION]: 'integer', [BROWSER_VERSION]: 'string', + [BROWSER_WEB_VITAL_CLS_VALUE]: 'double', + [BROWSER_WEB_VITAL_INP_VALUE]: 'double', + [BROWSER_WEB_VITAL_LCP_VALUE]: 'double', [CACHE_HIT]: 'boolean', [CACHE_ITEM_SIZE]: 'integer', [CACHE_KEY]: 'string[]', @@ -8860,6 +8998,7 @@ export const ATTRIBUTE_TYPE: Record = { [CLOUDFLARE_D1_DURATION]: 'integer', [CLOUDFLARE_D1_ROWS_READ]: 'integer', [CLOUDFLARE_D1_ROWS_WRITTEN]: 'integer', + [CLS]: 'double', [CODE_FILEPATH]: 'string', [CODE_FILE_PATH]: 'string', [CODE_FUNCTION]: 'string', @@ -8994,12 +9133,14 @@ export const ATTRIBUTE_TYPE: Record = { [HTTP_URL]: 'string', [HTTP_USER_AGENT]: 'string', [ID]: 'string', + [INP]: 'double', [JVM_GC_ACTION]: 'string', [JVM_GC_NAME]: 'string', [JVM_MEMORY_POOL_NAME]: 'string', [JVM_MEMORY_TYPE]: 'string', [JVM_THREAD_DAEMON]: 'boolean', [JVM_THREAD_STATE]: 'string', + [LCP]: 'double', [LCP_ELEMENT]: 'string', [LCP_ID]: 'string', [LCP_SIZE]: 'integer', @@ -9274,6 +9415,9 @@ export type AttributeName = | typeof BROWSER_SCRIPT_INVOKER_TYPE | typeof BROWSER_SCRIPT_SOURCE_CHAR_POSITION | typeof BROWSER_VERSION + | typeof BROWSER_WEB_VITAL_CLS_VALUE + | typeof BROWSER_WEB_VITAL_INP_VALUE + | typeof BROWSER_WEB_VITAL_LCP_VALUE | typeof CACHE_HIT | typeof CACHE_ITEM_SIZE | typeof CACHE_KEY @@ -9285,6 +9429,7 @@ export type AttributeName = | typeof CLOUDFLARE_D1_DURATION | typeof CLOUDFLARE_D1_ROWS_READ | typeof CLOUDFLARE_D1_ROWS_WRITTEN + | typeof CLS | typeof CODE_FILEPATH | typeof CODE_FILE_PATH | typeof CODE_FUNCTION @@ -9419,12 +9564,14 @@ export type AttributeName = | typeof HTTP_URL | typeof HTTP_USER_AGENT | typeof ID + | typeof INP | typeof JVM_GC_ACTION | typeof JVM_GC_NAME | typeof JVM_MEMORY_POOL_NAME | typeof JVM_MEMORY_TYPE | typeof JVM_THREAD_DAEMON | typeof JVM_THREAD_STATE + | typeof LCP | typeof LCP_ELEMENT | typeof LCP_ID | typeof LCP_SIZE @@ -10122,6 +10269,39 @@ export const ATTRIBUTE_METADATA: Record = { example: '120.0.6099.130', aliases: [SENTRY_BROWSER_VERSION], }, + [BROWSER_WEB_VITAL_CLS_VALUE]: { + brief: 'The value of the recorded Cumulative Layout Shift (CLS) web vital', + type: 'double', + pii: { + isPii: 'maybe', + }, + isInOtel: false, + example: 0.2361, + aliases: [CLS], + sdks: ['javascript-browser'], + }, + [BROWSER_WEB_VITAL_INP_VALUE]: { + brief: 'The value of the recorded Interaction to Next Paint (INP) web vital', + type: 'double', + pii: { + isPii: 'maybe', + }, + isInOtel: false, + example: 200, + aliases: [INP], + sdks: ['javascript-browser'], + }, + [BROWSER_WEB_VITAL_LCP_VALUE]: { + brief: 'The value of the recorded Largest Contentful Paint (LCP) web vital', + type: 'double', + pii: { + isPii: 'maybe', + }, + isInOtel: false, + example: 2500, + aliases: [LCP], + sdks: ['javascript-browser'], + }, [CACHE_HIT]: { brief: 'If the cache was hit during this span.', type: 'boolean', @@ -10231,6 +10411,21 @@ export const ATTRIBUTE_METADATA: Record = { example: 12, sdks: ['javascript-cloudflare'], }, + [CLS]: { + brief: 'The value of the recorded Cumulative Layout Shift (CLS) web vital', + type: 'double', + pii: { + isPii: 'maybe', + }, + isInOtel: false, + example: 0.2361, + deprecation: { + replacement: 'browser.web_vital.cls.value', + reason: 'The CLS web vital is now recorded as a browser.web_vital.cls.value attribute.', + }, + aliases: [BROWSER_WEB_VITAL_CLS_VALUE], + sdks: ['javascript-browser'], + }, [CODE_FILEPATH]: { brief: 'The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).', @@ -11662,6 +11857,21 @@ export const ATTRIBUTE_METADATA: Record = { example: 'f47ac10b58cc4372a5670e02b2c3d479', sdks: ['php-laravel'], }, + [INP]: { + brief: 'The value of the recorded Interaction to Next Paint (INP) web vital', + type: 'double', + pii: { + isPii: 'maybe', + }, + isInOtel: false, + example: 200, + deprecation: { + replacement: 'browser.web_vital.inp.value', + reason: 'The INP web vital is now recorded as a browser.web_vital.inp.value attribute.', + }, + aliases: [BROWSER_WEB_VITAL_INP_VALUE], + sdks: ['javascript-browser'], + }, [JVM_GC_ACTION]: { brief: 'Name of the garbage collector action.', type: 'string', @@ -11716,6 +11926,21 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: true, example: 'blocked', }, + [LCP]: { + brief: 'The value of the recorded Largest Contentful Paint (LCP) web vital', + type: 'double', + pii: { + isPii: 'maybe', + }, + isInOtel: false, + example: 2500, + deprecation: { + replacement: 'browser.web_vital.lcp.value', + reason: 'The LCP web vital is now recorded as a browser.web_vital.lcp.value attribute.', + }, + aliases: [BROWSER_WEB_VITAL_LCP_VALUE], + sdks: ['javascript-browser'], + }, [LCP_ELEMENT]: { brief: 'The dom element responsible for the largest contentful paint.', type: 'string', @@ -14026,6 +14251,9 @@ export type Attributes = { [BROWSER_SCRIPT_INVOKER_TYPE]?: BROWSER_SCRIPT_INVOKER_TYPE_TYPE; [BROWSER_SCRIPT_SOURCE_CHAR_POSITION]?: BROWSER_SCRIPT_SOURCE_CHAR_POSITION_TYPE; [BROWSER_VERSION]?: BROWSER_VERSION_TYPE; + [BROWSER_WEB_VITAL_CLS_VALUE]?: BROWSER_WEB_VITAL_CLS_VALUE_TYPE; + [BROWSER_WEB_VITAL_INP_VALUE]?: BROWSER_WEB_VITAL_INP_VALUE_TYPE; + [BROWSER_WEB_VITAL_LCP_VALUE]?: BROWSER_WEB_VITAL_LCP_VALUE_TYPE; [CACHE_HIT]?: CACHE_HIT_TYPE; [CACHE_ITEM_SIZE]?: CACHE_ITEM_SIZE_TYPE; [CACHE_KEY]?: CACHE_KEY_TYPE; @@ -14037,6 +14265,7 @@ export type Attributes = { [CLOUDFLARE_D1_DURATION]?: CLOUDFLARE_D1_DURATION_TYPE; [CLOUDFLARE_D1_ROWS_READ]?: CLOUDFLARE_D1_ROWS_READ_TYPE; [CLOUDFLARE_D1_ROWS_WRITTEN]?: CLOUDFLARE_D1_ROWS_WRITTEN_TYPE; + [CLS]?: CLS_TYPE; [CODE_FILEPATH]?: CODE_FILEPATH_TYPE; [CODE_FILE_PATH]?: CODE_FILE_PATH_TYPE; [CODE_FUNCTION]?: CODE_FUNCTION_TYPE; @@ -14171,12 +14400,14 @@ export type Attributes = { [HTTP_URL]?: HTTP_URL_TYPE; [HTTP_USER_AGENT]?: HTTP_USER_AGENT_TYPE; [ID]?: ID_TYPE; + [INP]?: INP_TYPE; [JVM_GC_ACTION]?: JVM_GC_ACTION_TYPE; [JVM_GC_NAME]?: JVM_GC_NAME_TYPE; [JVM_MEMORY_POOL_NAME]?: JVM_MEMORY_POOL_NAME_TYPE; [JVM_MEMORY_TYPE]?: JVM_MEMORY_TYPE_TYPE; [JVM_THREAD_DAEMON]?: JVM_THREAD_DAEMON_TYPE; [JVM_THREAD_STATE]?: JVM_THREAD_STATE_TYPE; + [LCP]?: LCP_TYPE; [LCP_ELEMENT]?: LCP_ELEMENT_TYPE; [LCP_ID]?: LCP_ID_TYPE; [LCP_SIZE]?: LCP_SIZE_TYPE; diff --git a/model/attributes/browser/browser__web_vital__cls__value.json b/model/attributes/browser/browser__web_vital__cls__value.json new file mode 100644 index 0000000..9799abb --- /dev/null +++ b/model/attributes/browser/browser__web_vital__cls__value.json @@ -0,0 +1,12 @@ +{ + "key": "browser.web_vital.cls.value", + "brief": "The value of the recorded Cumulative Layout Shift (CLS) web vital", + "type": "double", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": 0.2361, + "sdks": ["javascript-browser"], + "alias": ["cls"] +} diff --git a/model/attributes/browser/browser__web_vital__inp__value.json b/model/attributes/browser/browser__web_vital__inp__value.json new file mode 100644 index 0000000..d8ce060 --- /dev/null +++ b/model/attributes/browser/browser__web_vital__inp__value.json @@ -0,0 +1,12 @@ +{ + "key": "browser.web_vital.inp.value", + "brief": "The value of the recorded Interaction to Next Paint (INP) web vital", + "type": "double", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": 200.0, + "sdks": ["javascript-browser"], + "alias": ["inp"] +} diff --git a/model/attributes/browser/browser__web_vital__lcp__value.json b/model/attributes/browser/browser__web_vital__lcp__value.json new file mode 100644 index 0000000..78888df --- /dev/null +++ b/model/attributes/browser/browser__web_vital__lcp__value.json @@ -0,0 +1,12 @@ +{ + "key": "browser.web_vital.lcp.value", + "brief": "The value of the recorded Largest Contentful Paint (LCP) web vital", + "type": "double", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": 2500.0, + "sdks": ["javascript-browser"], + "alias": ["lcp"] +} diff --git a/model/attributes/cls.json b/model/attributes/cls.json new file mode 100644 index 0000000..fd82a5d --- /dev/null +++ b/model/attributes/cls.json @@ -0,0 +1,17 @@ +{ + "key": "cls", + "brief": "The value of the recorded Cumulative Layout Shift (CLS) web vital", + "type": "double", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": 0.2361, + "sdks": ["javascript-browser"], + "deprecation": { + "replacement": "browser.web_vital.cls.value", + "reason": "The CLS web vital is now recorded as a browser.web_vital.cls.value attribute.", + "_status": "backfill" + }, + "alias": ["browser.web_vital.cls.value"] +} diff --git a/model/attributes/inp.json b/model/attributes/inp.json new file mode 100644 index 0000000..b01f930 --- /dev/null +++ b/model/attributes/inp.json @@ -0,0 +1,17 @@ +{ + "key": "inp", + "brief": "The value of the recorded Interaction to Next Paint (INP) web vital", + "type": "double", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": 200.0, + "sdks": ["javascript-browser"], + "deprecation": { + "replacement": "browser.web_vital.inp.value", + "reason": "The INP web vital is now recorded as a browser.web_vital.inp.value attribute.", + "_status": "backfill" + }, + "alias": ["browser.web_vital.inp.value"] +} diff --git a/model/attributes/lcp.json b/model/attributes/lcp.json new file mode 100644 index 0000000..6859015 --- /dev/null +++ b/model/attributes/lcp.json @@ -0,0 +1,17 @@ +{ + "key": "lcp", + "brief": "The value of the recorded Largest Contentful Paint (LCP) web vital", + "type": "double", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": 2500.0, + "sdks": ["javascript-browser"], + "deprecation": { + "replacement": "browser.web_vital.lcp.value", + "reason": "The LCP web vital is now recorded as a browser.web_vital.lcp.value attribute.", + "_status": "backfill" + }, + "alias": ["browser.web_vital.lcp.value"] +} diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index a167893..061835a 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -105,6 +105,7 @@ class _AttributeNamesMeta(type): "AI_TOP_K", "AI_TOP_P", "AI_TOTAL_TOKENS_USED", + "CLS", "CODE_FILEPATH", "CODE_FUNCTION", "CODE_LINENO", @@ -136,6 +137,8 @@ class _AttributeNamesMeta(type): "HTTP_TARGET", "HTTP_URL", "HTTP_USER_AGENT", + "INP", + "LCP", "METHOD", "NET_HOST_IP", "NET_HOST_NAME", @@ -635,6 +638,45 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: "120.0.6099.130" """ + # Path: model/attributes/browser/browser__web_vital__cls__value.json + BROWSER_WEB_VITAL_CLS_VALUE: Literal["browser.web_vital.cls.value"] = ( + "browser.web_vital.cls.value" + ) + """The value of the recorded Cumulative Layout Shift (CLS) web vital + + Type: float + Contains PII: maybe + Defined in OTEL: No + Aliases: cls + Example: 0.2361 + """ + + # Path: model/attributes/browser/browser__web_vital__inp__value.json + BROWSER_WEB_VITAL_INP_VALUE: Literal["browser.web_vital.inp.value"] = ( + "browser.web_vital.inp.value" + ) + """The value of the recorded Interaction to Next Paint (INP) web vital + + Type: float + Contains PII: maybe + Defined in OTEL: No + Aliases: inp + Example: 200 + """ + + # Path: model/attributes/browser/browser__web_vital__lcp__value.json + BROWSER_WEB_VITAL_LCP_VALUE: Literal["browser.web_vital.lcp.value"] = ( + "browser.web_vital.lcp.value" + ) + """The value of the recorded Largest Contentful Paint (LCP) web vital + + Type: float + Contains PII: maybe + Defined in OTEL: No + Aliases: lcp + Example: 2500 + """ + # Path: model/attributes/cache/cache__hit.json CACHE_HIT: Literal["cache.hit"] = "cache.hit" """If the cache was hit during this span. @@ -750,6 +792,18 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: 12 """ + # Path: model/attributes/cls.json + CLS: Literal["cls"] = "cls" + """The value of the recorded Cumulative Layout Shift (CLS) web vital + + Type: float + Contains PII: maybe + Defined in OTEL: No + Aliases: browser.web_vital.cls.value + DEPRECATED: Use browser.web_vital.cls.value instead - The CLS web vital is now recorded as a browser.web_vital.cls.value attribute. + Example: 0.2361 + """ + # Path: model/attributes/code/code__file__path.json CODE_FILE_PATH: Literal["code.file.path"] = "code.file.path" """The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path). @@ -2278,6 +2332,18 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: "f47ac10b58cc4372a5670e02b2c3d479" """ + # Path: model/attributes/inp.json + INP: Literal["inp"] = "inp" + """The value of the recorded Interaction to Next Paint (INP) web vital + + Type: float + Contains PII: maybe + Defined in OTEL: No + Aliases: browser.web_vital.inp.value + DEPRECATED: Use browser.web_vital.inp.value instead - The INP web vital is now recorded as a browser.web_vital.inp.value attribute. + Example: 200 + """ + # Path: model/attributes/jvm/jvm__gc__action.json JVM_GC_ACTION: Literal["jvm.gc.action"] = "jvm.gc.action" """Name of the garbage collector action. @@ -2378,6 +2444,18 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: "https://example.com" """ + # Path: model/attributes/lcp.json + LCP: Literal["lcp"] = "lcp" + """The value of the recorded Largest Contentful Paint (LCP) web vital + + Type: float + Contains PII: maybe + Defined in OTEL: No + Aliases: browser.web_vital.lcp.value + DEPRECATED: Use browser.web_vital.lcp.value instead - The LCP web vital is now recorded as a browser.web_vital.lcp.value attribute. + Example: 2500 + """ + # Path: model/attributes/logger/logger__name.json LOGGER_NAME: Literal["logger.name"] = "logger.name" """The name of the logger that generated this event. @@ -5155,6 +5233,33 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="120.0.6099.130", aliases=["sentry.browser.version"], ), + "browser.web_vital.cls.value": AttributeMetadata( + brief="The value of the recorded Cumulative Layout Shift (CLS) web vital", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.MAYBE), + is_in_otel=False, + example=0.2361, + aliases=["cls"], + sdks=["javascript-browser"], + ), + "browser.web_vital.inp.value": AttributeMetadata( + brief="The value of the recorded Interaction to Next Paint (INP) web vital", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.MAYBE), + is_in_otel=False, + example=200, + aliases=["inp"], + sdks=["javascript-browser"], + ), + "browser.web_vital.lcp.value": AttributeMetadata( + brief="The value of the recorded Largest Contentful Paint (LCP) web vital", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.MAYBE), + is_in_otel=False, + example=2500, + aliases=["lcp"], + sdks=["javascript-browser"], + ), "cache.hit": AttributeMetadata( brief="If the cache was hit during this span.", type=AttributeType.BOOLEAN, @@ -5241,6 +5346,20 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example=12, sdks=["javascript-cloudflare"], ), + "cls": AttributeMetadata( + brief="The value of the recorded Cumulative Layout Shift (CLS) web vital", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.MAYBE), + is_in_otel=False, + example=0.2361, + deprecation=DeprecationInfo( + replacement="browser.web_vital.cls.value", + reason="The CLS web vital is now recorded as a browser.web_vital.cls.value attribute.", + status=DeprecationStatus.BACKFILL, + ), + aliases=["browser.web_vital.cls.value"], + sdks=["javascript-browser"], + ), "code.file.path": AttributeMetadata( brief="The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).", type=AttributeType.STRING, @@ -6319,6 +6438,20 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): example="f47ac10b58cc4372a5670e02b2c3d479", sdks=["php-laravel"], ), + "inp": AttributeMetadata( + brief="The value of the recorded Interaction to Next Paint (INP) web vital", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.MAYBE), + is_in_otel=False, + example=200, + deprecation=DeprecationInfo( + replacement="browser.web_vital.inp.value", + reason="The INP web vital is now recorded as a browser.web_vital.inp.value attribute.", + status=DeprecationStatus.BACKFILL, + ), + aliases=["browser.web_vital.inp.value"], + sdks=["javascript-browser"], + ), "jvm.gc.action": AttributeMetadata( brief="Name of the garbage collector action.", type=AttributeType.STRING, @@ -6389,6 +6522,20 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): is_in_otel=False, example="https://example.com", ), + "lcp": AttributeMetadata( + brief="The value of the recorded Largest Contentful Paint (LCP) web vital", + type=AttributeType.DOUBLE, + pii=PiiInfo(isPii=IsPii.MAYBE), + is_in_otel=False, + example=2500, + deprecation=DeprecationInfo( + replacement="browser.web_vital.lcp.value", + reason="The LCP web vital is now recorded as a browser.web_vital.lcp.value attribute.", + status=DeprecationStatus.BACKFILL, + ), + aliases=["browser.web_vital.lcp.value"], + sdks=["javascript-browser"], + ), "logger.name": AttributeMetadata( brief="The name of the logger that generated this event.", type=AttributeType.STRING, @@ -8156,6 +8303,9 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "browser.script.invoker_type": str, "browser.script.source_char_position": int, "browser.version": str, + "browser.web_vital.cls.value": float, + "browser.web_vital.inp.value": float, + "browser.web_vital.lcp.value": float, "cache.hit": bool, "cache.item_size": int, "cache.key": List[str], @@ -8167,6 +8317,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "cloudflare.d1.duration": int, "cloudflare.d1.rows_read": int, "cloudflare.d1.rows_written": int, + "cls": float, "code.file.path": str, "code.filepath": str, "code.function": str, @@ -8301,6 +8452,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "http.url": str, "http.user_agent": str, "id": str, + "inp": float, "jvm.gc.action": str, "jvm.gc.name": str, "jvm.memory.pool.name": str, @@ -8311,6 +8463,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "lcp.id": str, "lcp.size": int, "lcp.url": str, + "lcp": float, "logger.name": str, "mcp.cancelled.reason": str, "mcp.cancelled.request_id": str, diff --git a/shared/deprecated_attributes.json b/shared/deprecated_attributes.json index f02695e..7487880 100644 --- a/shared/deprecated_attributes.json +++ b/shared/deprecated_attributes.json @@ -1,6 +1,23 @@ { "_generated": "This file is generated. Do not modify it directly. See scripts/generate_deprecated_attributes_json.ts", "attributes": [ + { + "key": "cls", + "brief": "The value of the recorded Cumulative Layout Shift (CLS) web vital", + "type": "double", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": 0.2361, + "sdks": ["javascript-browser"], + "deprecation": { + "replacement": "browser.web_vital.cls.value", + "reason": "The CLS web vital is now recorded as a browser.web_vital.cls.value attribute.", + "_status": "backfill" + }, + "alias": ["browser.web_vital.cls.value"] + }, { "key": "environment", "brief": "The sentry environment.", @@ -32,6 +49,40 @@ "example": "ENOENT: no such file or directory", "sdks": ["javascript-node"] }, + { + "key": "inp", + "brief": "The value of the recorded Interaction to Next Paint (INP) web vital", + "type": "double", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": 200, + "sdks": ["javascript-browser"], + "deprecation": { + "replacement": "browser.web_vital.inp.value", + "reason": "The INP web vital is now recorded as a browser.web_vital.inp.value attribute.", + "_status": "backfill" + }, + "alias": ["browser.web_vital.inp.value"] + }, + { + "key": "lcp", + "brief": "The value of the recorded Largest Contentful Paint (LCP) web vital", + "type": "double", + "pii": { + "key": "maybe" + }, + "is_in_otel": false, + "example": 2500, + "sdks": ["javascript-browser"], + "deprecation": { + "replacement": "browser.web_vital.lcp.value", + "reason": "The LCP web vital is now recorded as a browser.web_vital.lcp.value attribute.", + "_status": "backfill" + }, + "alias": ["browser.web_vital.lcp.value"] + }, { "key": "method", "brief": "The HTTP method used.",