Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions javascript/sentry-conventions/src/attributes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15763,6 +15763,29 @@ export const OTEL_STATUS_DESCRIPTION = 'otel.status_description';
*/
export type OTEL_STATUS_DESCRIPTION_TYPE = string;

// Path: model/attributes/page/page__server_rendering__age.json

/**
* Set on a pageload span. The time in seconds from the start of the server render of the reused part of the page to the start of the span. `page.server_rendering.age`
*
* Attribute Value Type: `number` {@link PAGE_SERVER_RENDERING_AGE_TYPE}
*
* Apply Scrubbing: manual
*
* Attribute defined in OTEL: No
* Visibility: public
*
* @example 0
* @example 2520
* @example 259200
*/
export const PAGE_SERVER_RENDERING_AGE = 'page.server_rendering.age';

/**
* Type for {@link PAGE_SERVER_RENDERING_AGE} page.server_rendering.age
*/
export type PAGE_SERVER_RENDERING_AGE_TYPE = number;

// Path: model/attributes/page/page__server_rendering__type.json

/**
Expand Down Expand Up @@ -22657,6 +22680,7 @@ export const ATTRIBUTE_TYPE: Record<string, AttributeType> = {
'otel.scope.version': 'string',
'otel.status_code': 'string',
'otel.status_description': 'string',
'page.server_rendering.age': 'integer',
'page.server_rendering.type': 'string',
'params.<key>': 'string',
'performance.activationStart': 'double',
Expand Down Expand Up @@ -23631,6 +23655,7 @@ export type AttributeName =
| typeof OTEL_SCOPE_VERSION
| typeof OTEL_STATUS_CODE
| typeof OTEL_STATUS_DESCRIPTION
| typeof PAGE_SERVER_RENDERING_AGE
| typeof PAGE_SERVER_RENDERING_TYPE
| typeof PARAMS_KEY
| typeof PERFORMANCE_ACTIVATIONSTART
Expand Down Expand Up @@ -35717,6 +35742,31 @@ export const ATTRIBUTE_METADATA: Record<AttributeName, AttributeMetadata> = {
example: 'resource not found',
changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }],
},
'page.server_rendering.age': {
brief:
'Set on a pageload span. The time in seconds from the start of the server render of the reused part of the page to the start of the span.',
type: 'integer',
keys: ['page.server_rendering.age'],
applyScrubbing: {
key: 'manual',
},
isInOtel: false,
visibility: 'public',
example: 0,
examples: [0, 2520, 259200],
changelog: [{ version: 'next', prs: [799], description: 'Added page.server_rendering.age attribute' }],
additionalContext: [
'Set only by an SDK that controls the server render, when the page reuses a server render and the SDK knows when that render started. With `page.server_rendering.type: partially_static`, the value is for the static part.',
'If the span has a `cache_origin` link, the linked span is that render. The SDK can also set the value without a link, for example for a page from the build.',
'Approximate, because the render time comes from the server clock and the span start from the browser clock. Rounded down to whole seconds and clamped to 0, as `cache.item_age`. A value near 0 does not prove that the server rendered the page for this request.',
'The age of the render, not of its data. The render can read older cached data.',
'Not the HTTP `Age` response header. HTTP caches reset that header when they validate the response.',
],
searchAlias: {
name: 'page.server_rendering.age',
type: 'second',
},
},
'page.server_rendering.type': {
brief:
'Set on a pageload span. Describes how the server rendered the content of the page: to reuse it for other requests, only for this request, or a mix of both.',
Expand Down Expand Up @@ -40739,6 +40789,7 @@ export type Attributes = {
[OTEL_SCOPE_VERSION]?: OTEL_SCOPE_VERSION_TYPE;
[OTEL_STATUS_CODE]?: OTEL_STATUS_CODE_TYPE;
[OTEL_STATUS_DESCRIPTION]?: OTEL_STATUS_DESCRIPTION_TYPE;
[PAGE_SERVER_RENDERING_AGE]?: PAGE_SERVER_RENDERING_AGE_TYPE;
[PAGE_SERVER_RENDERING_TYPE]?: PAGE_SERVER_RENDERING_TYPE_TYPE;
[PARAMS_KEY]?: PARAMS_KEY_TYPE;
[PERFORMANCE_ACTIVATIONSTART]?: PERFORMANCE_ACTIVATIONSTART_TYPE;
Expand Down
13 changes: 13 additions & 0 deletions javascript/sentry-conventions/src/search.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4009,6 +4009,11 @@ export const SEARCH_OTEL__STATUS_CODE = 'otel.status_code';
*/
export const SEARCH_OTEL__STATUS_DESCRIPTION = 'otel.status_description';

/**
* Search name for {@link attributes.PAGE_SERVER_RENDERING_AGE}. `page.server_rendering.age`
*/
export const SEARCH_PAGE__SERVER_RENDERING__AGE = 'page.server_rendering.age';

/**
* Search name for {@link attributes.PAGE_SERVER_RENDERING_TYPE}. `page.server_rendering.type`
*/
Expand Down Expand Up @@ -6292,6 +6297,7 @@ export type AttributeSearchName =
| typeof SEARCH_OTEL__SCOPE__VERSION
| typeof SEARCH_OTEL__STATUS_CODE
| typeof SEARCH_OTEL__STATUS_DESCRIPTION
| typeof SEARCH_PAGE__SERVER_RENDERING__AGE
| typeof SEARCH_PAGE__SERVER_RENDERING__TYPE
| typeof SEARCH_PARAMS__KEY
| typeof SEARCH_PERFORMANCE__ACTIVATIONSTART
Expand Down Expand Up @@ -11262,6 +11268,13 @@ export const ATTRIBUTE_SEARCH_METADATA: Record<string, AttributeSearchMetadata>
brief: 'Description of the Status if it has a value, otherwise not set.',
deprecationChain: ['otel.status_description'],
},
'page.server_rendering.age': {
canonicalName: 'page.server_rendering.age',
type: 'second',
brief:
'Set on a pageload span. The time in seconds from the start of the server render of the reused part of the page to the start of the span.',
deprecationChain: ['page.server_rendering.age'],
},
'page.server_rendering.type': {
canonicalName: 'page.server_rendering.type',
type: 'string',
Expand Down
29 changes: 29 additions & 0 deletions model/attributes/page/page__server_rendering__age.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"key": "page.server_rendering.age",
"brief": "Set on a pageload span. The time in seconds from the start of the server render of the reused part of the page to the start of the span.",
"type": "integer",
"apply_scrubbing": {
"key": "manual"
},
"additional_context": [
"Set only by an SDK that controls the server render, when the page reuses a server render and the SDK knows when that render started. With `page.server_rendering.type: partially_static`, the value is for the static part.",
"If the span has a `cache_origin` link, the linked span is that render. The SDK can also set the value without a link, for example for a page from the build.",
"Approximate, because the render time comes from the server clock and the span start from the browser clock. Rounded down to whole seconds and clamped to 0, as `cache.item_age`. A value near 0 does not prove that the server rendered the page for this request.",
"The age of the render, not of its data. The render can read older cached data.",
"Not the HTTP `Age` response header. HTTP caches reset that header when they validate the response."
],
"is_in_otel": false,
"visibility": "public",
"examples": [0, 2520, 259200],
"search_alias": {
"name": "page.server_rendering.age",
"type": "second"
},
"changelog": [
{
"version": "next",
"prs": [799],
"description": "Added page.server_rendering.age attribute"
}
]
}
41 changes: 41 additions & 0 deletions python/src/sentry_conventions/attributes.py
Original file line number Diff line number Diff line change
Expand Up @@ -9425,6 +9425,21 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta):
Example: "resource not found"
"""

# Path: model/attributes/page/page__server_rendering__age.json
PAGE_SERVER_RENDERING_AGE: Literal["page.server_rendering.age"] = (
"page.server_rendering.age"
)
"""Set on a pageload span. The time in seconds from the start of the server render of the reused part of the page to the start of the span.

Type: int
Apply Scrubbing: manual
Defined in OTEL: No
Visibility: public
Example: 0
Example: 2520
Example: 259200
"""

# Path: model/attributes/page/page__server_rendering__type.json
PAGE_SERVER_RENDERING_TYPE: Literal["page.server_rendering.type"] = (
"page.server_rendering.type"
Expand Down Expand Up @@ -26735,6 +26750,31 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta):
ChangelogEntry(version="0.0.0"),
],
),
"page.server_rendering.age": AttributeMetadata(
brief="Set on a pageload span. The time in seconds from the start of the server render of the reused part of the page to the start of the span.",
type=AttributeType.INTEGER,
keys=("page.server_rendering.age",),
apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL),
is_in_otel=False,
visibility=Visibility.PUBLIC,
example=0,
examples=[0, 2520, 259200],
changelog=[
ChangelogEntry(
version="next",
prs=[799],
description="Added page.server_rendering.age attribute",
),
],
additional_context=[
"Set only by an SDK that controls the server render, when the page reuses a server render and the SDK knows when that render started. With `page.server_rendering.type: partially_static`, the value is for the static part.",
"If the span has a `cache_origin` link, the linked span is that render. The SDK can also set the value without a link, for example for a page from the build.",
"Approximate, because the render time comes from the server clock and the span start from the browser clock. Rounded down to whole seconds and clamped to 0, as `cache.item_age`. A value near 0 does not prove that the server rendered the page for this request.",
"The age of the render, not of its data. The render can read older cached data.",
"Not the HTTP `Age` response header. HTTP caches reset that header when they validate the response.",
],
search_alias=SearchAlias(name="page.server_rendering.age", type="second"),
),
"page.server_rendering.type": AttributeMetadata(
brief="Set on a pageload span. Describes how the server rendered the content of the page: to reuse it for other requests, only for this request, or a mix of both.",
type=AttributeType.STRING,
Expand Down Expand Up @@ -32326,6 +32366,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta):
"otel.scope.version": str,
"otel.status_code": str,
"otel.status_description": str,
"page.server_rendering.age": int,
"page.server_rendering.type": str,
"params.<key>": str,
"performance.activationStart": float,
Expand Down
Loading