From 9e914bb86df076ea62784da815a8535840a3ae8c Mon Sep 17 00:00:00 2001 From: lucas Date: Wed, 1 Jul 2026 22:10:59 -0300 Subject: [PATCH 1/3] add additional fields for grps --- .../sentry-conventions/src/attributes.ts | 491 ++++++++++++++++++ ..._error__bad_request__field_violations.json | 20 + .../rpc__grpc__error__debug_info__detail.json | 18 + ...rpc__error__debug_info__stack_entries.json | 18 + .../rpc__grpc__error__error_info__domain.json | 18 + ...c__error__error_info__metadata__[key].json | 19 + .../rpc__grpc__error__error_info__reason.json | 18 + ...ror__precondition_failure__violations.json | 20 + ...rpc__error__quota_failure__violations.json | 20 + ...pc__error__resource_info__description.json | 18 + ...pc__grpc__error__resource_info__owner.json | 18 + ...__error__resource_info__resource_name.json | 18 + ...__error__resource_info__resource_type.json | 18 + ..._error__retry_info__retry_delay_in_ms.json | 18 + python/src/sentry_conventions/attributes.py | 388 ++++++++++++++ 15 files changed, 1120 insertions(+) create mode 100644 model/attributes/rpc/rpc__grpc__error__bad_request__field_violations.json create mode 100644 model/attributes/rpc/rpc__grpc__error__debug_info__detail.json create mode 100644 model/attributes/rpc/rpc__grpc__error__debug_info__stack_entries.json create mode 100644 model/attributes/rpc/rpc__grpc__error__error_info__domain.json create mode 100644 model/attributes/rpc/rpc__grpc__error__error_info__metadata__[key].json create mode 100644 model/attributes/rpc/rpc__grpc__error__error_info__reason.json create mode 100644 model/attributes/rpc/rpc__grpc__error__precondition_failure__violations.json create mode 100644 model/attributes/rpc/rpc__grpc__error__quota_failure__violations.json create mode 100644 model/attributes/rpc/rpc__grpc__error__resource_info__description.json create mode 100644 model/attributes/rpc/rpc__grpc__error__resource_info__owner.json create mode 100644 model/attributes/rpc/rpc__grpc__error__resource_info__resource_name.json create mode 100644 model/attributes/rpc/rpc__grpc__error__resource_info__resource_type.json create mode 100644 model/attributes/rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 28e62d02..ec7a909e 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -10980,6 +10980,281 @@ export const ROUTE = 'route'; */ export type ROUTE_TYPE = string; +// Path: model/attributes/rpc/rpc__grpc__error__bad_request__field_violations.json + +/** + * The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation. `rpc.grpc.error.bad_request.field_violations` + * + * Attribute Value Type: `Array` {@link RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example ["{\"field\":\"email\",\"description\":\"must be a valid email address\",\"reason\":\"FIELD_INVALID\",\"localized_message\":{\"locale\":\"en-US\",\"message\":\"Must be a valid email address\"}}"] + */ +export const RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS = 'rpc.grpc.error.bad_request.field_violations'; + +/** + * Type for {@link RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS} rpc.grpc.error.bad_request.field_violations + */ +export type RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS_TYPE = Array; + +// Path: model/attributes/rpc/rpc__grpc__error__debug_info__detail.json + +/** + * Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. `rpc.grpc.error.debug_info.detail` + * + * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_DEBUG_INFO_DETAIL_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "at com.example.Service.method(Service.java:42)" + */ +export const RPC_GRPC_ERROR_DEBUG_INFO_DETAIL = 'rpc.grpc.error.debug_info.detail'; + +/** + * Type for {@link RPC_GRPC_ERROR_DEBUG_INFO_DETAIL} rpc.grpc.error.debug_info.detail + */ +export type RPC_GRPC_ERROR_DEBUG_INFO_DETAIL_TYPE = string; + +// Path: model/attributes/rpc/rpc__grpc__error__debug_info__stack_entries.json + +/** + * The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. `rpc.grpc.error.debug_info.stack_entries` + * + * Attribute Value Type: `Array` {@link RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example ["com.example.Service.method(Service.java:42)","com.example.Server.handle(Server.java:100)"] + */ +export const RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES = 'rpc.grpc.error.debug_info.stack_entries'; + +/** + * Type for {@link RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES} rpc.grpc.error.debug_info.stack_entries + */ +export type RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES_TYPE = Array; + +// Path: model/attributes/rpc/rpc__grpc__error__error_info__domain.json + +/** + * The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail. `rpc.grpc.error.error_info.domain` + * + * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_ERROR_INFO_DOMAIN_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "example.sentry.io" + */ +export const RPC_GRPC_ERROR_ERROR_INFO_DOMAIN = 'rpc.grpc.error.error_info.domain'; + +/** + * Type for {@link RPC_GRPC_ERROR_ERROR_INFO_DOMAIN} rpc.grpc.error.error_info.domain + */ +export type RPC_GRPC_ERROR_ERROR_INFO_DOMAIN_TYPE = string; + +// Path: model/attributes/rpc/rpc__grpc__error__error_info__metadata__[key].json + +/** + * Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled. `rpc.grpc.error.error_info.metadata.` + * + * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * Has Dynamic Suffix: true + * + * @example "rpc.grpc.error.error_info.metadata.user_id='123'" + */ +export const RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY = 'rpc.grpc.error.error_info.metadata.'; + +/** + * Type for {@link RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY} rpc.grpc.error.error_info.metadata. + */ +export type RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY_TYPE = string; + +// Path: model/attributes/rpc/rpc__grpc__error__error_info__reason.json + +/** + * The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail. `rpc.grpc.error.error_info.reason` + * + * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_ERROR_INFO_REASON_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "FIELD_INVALID" + */ +export const RPC_GRPC_ERROR_ERROR_INFO_REASON = 'rpc.grpc.error.error_info.reason'; + +/** + * Type for {@link RPC_GRPC_ERROR_ERROR_INFO_REASON} rpc.grpc.error.error_info.reason + */ +export type RPC_GRPC_ERROR_ERROR_INFO_REASON_TYPE = string; + +// Path: model/attributes/rpc/rpc__grpc__error__precondition_failure__violations.json + +/** + * The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. `rpc.grpc.error.precondition_failure.violations` + * + * Attribute Value Type: `Array` {@link RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example ["{\"type\":\"TOS\",\"subject\":\"example.com/user/123\",\"description\":\"User must accept the terms of service\"}"] + */ +export const RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS = 'rpc.grpc.error.precondition_failure.violations'; + +/** + * Type for {@link RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS} rpc.grpc.error.precondition_failure.violations + */ +export type RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS_TYPE = Array; + +// Path: model/attributes/rpc/rpc__grpc__error__quota_failure__violations.json + +/** + * The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. `rpc.grpc.error.quota_failure.violations` + * + * Attribute Value Type: `Array` {@link RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example ["{\"subject\":\"clientip:127.0.0.1\",\"description\":\"Limit checks failed.\",\"api_service\":\"example.googleapis.com\",\"quota_metric\":\"example.googleapis.com/read_requests\",\"quota_id\":\"ReadRequestsPerMinutePerProject\",\"quota_dimensions\":{\"region\":\"us-central1\"},\"quota_value\":1000}"] + */ +export const RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS = 'rpc.grpc.error.quota_failure.violations'; + +/** + * Type for {@link RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS} rpc.grpc.error.quota_failure.violations + */ +export type RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS_TYPE = Array; + +// Path: model/attributes/rpc/rpc__grpc__error__resource_info__description.json + +/** + * A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail. `rpc.grpc.error.resource_info.description` + * + * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "Instance is not ready for the request." + */ +export const RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION = 'rpc.grpc.error.resource_info.description'; + +/** + * Type for {@link RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION} rpc.grpc.error.resource_info.description + */ +export type RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION_TYPE = string; + +// Path: model/attributes/rpc/rpc__grpc__error__resource_info__owner.json + +/** + * The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. `rpc.grpc.error.resource_info.owner` + * + * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_RESOURCE_INFO_OWNER_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "user@example.com" + */ +export const RPC_GRPC_ERROR_RESOURCE_INFO_OWNER = 'rpc.grpc.error.resource_info.owner'; + +/** + * Type for {@link RPC_GRPC_ERROR_RESOURCE_INFO_OWNER} rpc.grpc.error.resource_info.owner + */ +export type RPC_GRPC_ERROR_RESOURCE_INFO_OWNER_TYPE = string; + +// Path: model/attributes/rpc/rpc__grpc__error__resource_info__resource_name.json + +/** + * The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. `rpc.grpc.error.resource_info.resource_name` + * + * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "projects/example/instances/example-instance" + */ +export const RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME = 'rpc.grpc.error.resource_info.resource_name'; + +/** + * Type for {@link RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME} rpc.grpc.error.resource_info.resource_name + */ +export type RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME_TYPE = string; + +// Path: model/attributes/rpc/rpc__grpc__error__resource_info__resource_type.json + +/** + * The type of resource being accessed, from a google.rpc.ResourceInfo error detail. `rpc.grpc.error.resource_info.resource_type` + * + * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "database" + */ +export const RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE = 'rpc.grpc.error.resource_info.resource_type'; + +/** + * Type for {@link RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE} rpc.grpc.error.resource_info.resource_type + */ +export type RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE_TYPE = string; + +// Path: model/attributes/rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json + +/** + * How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail. `rpc.grpc.error.retry_info.retry_delay_in_ms` + * + * Attribute Value Type: `number` {@link RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example 5000 + */ +export const RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS = 'rpc.grpc.error.retry_info.retry_delay_in_ms'; + +/** + * Type for {@link RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS} rpc.grpc.error.retry_info.retry_delay_in_ms + */ +export type RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS_TYPE = number; + // Path: model/attributes/rpc/rpc__grpc__status_code.json /** @@ -15256,6 +15531,19 @@ export const ATTRIBUTE_TYPE: Record = { 'resource.deployment.environment.name': 'string', 'resource.render_blocking_status': 'string', route: 'string', + 'rpc.grpc.error.bad_request.field_violations': 'string[]', + 'rpc.grpc.error.debug_info.detail': 'string', + 'rpc.grpc.error.debug_info.stack_entries': 'string[]', + 'rpc.grpc.error.error_info.domain': 'string', + 'rpc.grpc.error.error_info.metadata.': 'string', + 'rpc.grpc.error.error_info.reason': 'string', + 'rpc.grpc.error.precondition_failure.violations': 'string[]', + 'rpc.grpc.error.quota_failure.violations': 'string[]', + 'rpc.grpc.error.resource_info.description': 'string', + 'rpc.grpc.error.resource_info.owner': 'string', + 'rpc.grpc.error.resource_info.resource_name': 'string', + 'rpc.grpc.error.resource_info.resource_type': 'string', + 'rpc.grpc.error.retry_info.retry_delay_in_ms': 'integer', 'rpc.grpc.status_code': 'integer', 'rpc.method': 'string', 'rpc.response.status_code': 'string', @@ -15927,6 +16215,19 @@ export type AttributeName = | typeof RESOURCE_DEPLOYMENT_ENVIRONMENT_NAME | typeof RESOURCE_RENDER_BLOCKING_STATUS | typeof ROUTE + | typeof RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS + | typeof RPC_GRPC_ERROR_DEBUG_INFO_DETAIL + | typeof RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES + | typeof RPC_GRPC_ERROR_ERROR_INFO_DOMAIN + | typeof RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY + | typeof RPC_GRPC_ERROR_ERROR_INFO_REASON + | typeof RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS + | typeof RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS + | typeof RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION + | typeof RPC_GRPC_ERROR_RESOURCE_INFO_OWNER + | typeof RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME + | typeof RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE + | typeof RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS | typeof RPC_GRPC_STATUS_CODE | typeof RPC_METHOD | typeof RPC_RESPONSE_STATUS_CODE @@ -22840,6 +23141,183 @@ export const ATTRIBUTE_METADATA: Record = { aliases: ['http.route'], changelog: [{ version: '0.1.0', prs: [61, 74] }, { version: '0.0.0' }], }, + 'rpc.grpc.error.bad_request.field_violations': { + brief: + 'The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation.', + type: 'string[]', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: [ + '{"field":"email","description":"must be a valid email address","reason":"FIELD_INVALID","localized_message":{"locale":"en-US","message":"Must be a valid email address"}}', + ], + changelog: [ + { version: 'next', prs: [460], description: 'Added rpc.grpc.error.bad_request.field_violations attribute' }, + ], + }, + 'rpc.grpc.error.debug_info.detail': { + brief: + 'Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.', + type: 'string', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: 'at com.example.Service.method(Service.java:42)', + changelog: [{ version: 'next', prs: [460], description: 'Added rpc.grpc.error.debug_info.detail attribute' }], + }, + 'rpc.grpc.error.debug_info.stack_entries': { + brief: + 'The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.', + type: 'string[]', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: ['com.example.Service.method(Service.java:42)', 'com.example.Server.handle(Server.java:100)'], + changelog: [ + { version: 'next', prs: [460], description: 'Added rpc.grpc.error.debug_info.stack_entries attribute' }, + ], + }, + 'rpc.grpc.error.error_info.domain': { + brief: 'The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail.', + type: 'string', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: 'example.sentry.io', + changelog: [{ version: 'next', prs: [460], description: 'Added rpc.grpc.error.error_info.domain attribute' }], + }, + 'rpc.grpc.error.error_info.metadata.': { + brief: + 'Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled.', + type: 'string', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + hasDynamicSuffix: true, + example: "rpc.grpc.error.error_info.metadata.user_id='123'", + changelog: [ + { version: 'next', prs: [460], description: 'Added rpc.grpc.error.error_info.metadata. attribute' }, + ], + }, + 'rpc.grpc.error.error_info.reason': { + brief: + 'The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail.', + type: 'string', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: 'FIELD_INVALID', + changelog: [{ version: 'next', prs: [460], description: 'Added rpc.grpc.error.error_info.reason attribute' }], + }, + 'rpc.grpc.error.precondition_failure.violations': { + brief: + 'The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.', + type: 'string[]', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: ['{"type":"TOS","subject":"example.com/user/123","description":"User must accept the terms of service"}'], + changelog: [ + { version: 'next', prs: [460], description: 'Added rpc.grpc.error.precondition_failure.violations attribute' }, + ], + }, + 'rpc.grpc.error.quota_failure.violations': { + brief: + 'The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.', + type: 'string[]', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: [ + '{"subject":"clientip:127.0.0.1","description":"Limit checks failed.","api_service":"example.googleapis.com","quota_metric":"example.googleapis.com/read_requests","quota_id":"ReadRequestsPerMinutePerProject","quota_dimensions":{"region":"us-central1"},"quota_value":1000}', + ], + changelog: [ + { version: 'next', prs: [460], description: 'Added rpc.grpc.error.quota_failure.violations attribute' }, + ], + }, + 'rpc.grpc.error.resource_info.description': { + brief: + 'A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail.', + type: 'string', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: 'Instance is not ready for the request.', + changelog: [ + { version: 'next', prs: [460], description: 'Added rpc.grpc.error.resource_info.description attribute' }, + ], + }, + 'rpc.grpc.error.resource_info.owner': { + brief: + 'The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.', + type: 'string', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: 'user@example.com', + changelog: [{ version: 'next', prs: [460], description: 'Added rpc.grpc.error.resource_info.owner attribute' }], + }, + 'rpc.grpc.error.resource_info.resource_name': { + brief: + 'The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.', + type: 'string', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: 'projects/example/instances/example-instance', + changelog: [ + { version: 'next', prs: [460], description: 'Added rpc.grpc.error.resource_info.resource_name attribute' }, + ], + }, + 'rpc.grpc.error.resource_info.resource_type': { + brief: 'The type of resource being accessed, from a google.rpc.ResourceInfo error detail.', + type: 'string', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: 'database', + changelog: [ + { version: 'next', prs: [460], description: 'Added rpc.grpc.error.resource_info.resource_type attribute' }, + ], + }, + 'rpc.grpc.error.retry_info.retry_delay_in_ms': { + brief: + 'How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail.', + type: 'integer', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: 5000, + changelog: [ + { version: 'next', prs: [460], description: 'Added rpc.grpc.error.retry_info.retry_delay_in_ms attribute' }, + ], + }, 'rpc.grpc.status_code': { brief: 'The numeric status code of the gRPC request.', type: 'integer', @@ -25445,6 +25923,19 @@ export type Attributes = { [RESOURCE_DEPLOYMENT_ENVIRONMENT_NAME]?: RESOURCE_DEPLOYMENT_ENVIRONMENT_NAME_TYPE; [RESOURCE_RENDER_BLOCKING_STATUS]?: RESOURCE_RENDER_BLOCKING_STATUS_TYPE; [ROUTE]?: ROUTE_TYPE; + [RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS]?: RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS_TYPE; + [RPC_GRPC_ERROR_DEBUG_INFO_DETAIL]?: RPC_GRPC_ERROR_DEBUG_INFO_DETAIL_TYPE; + [RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES]?: RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES_TYPE; + [RPC_GRPC_ERROR_ERROR_INFO_DOMAIN]?: RPC_GRPC_ERROR_ERROR_INFO_DOMAIN_TYPE; + [RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY]?: RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY_TYPE; + [RPC_GRPC_ERROR_ERROR_INFO_REASON]?: RPC_GRPC_ERROR_ERROR_INFO_REASON_TYPE; + [RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS]?: RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS_TYPE; + [RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS]?: RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS_TYPE; + [RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION]?: RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION_TYPE; + [RPC_GRPC_ERROR_RESOURCE_INFO_OWNER]?: RPC_GRPC_ERROR_RESOURCE_INFO_OWNER_TYPE; + [RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME]?: RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME_TYPE; + [RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE]?: RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE_TYPE; + [RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS]?: RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS_TYPE; [RPC_GRPC_STATUS_CODE]?: RPC_GRPC_STATUS_CODE_TYPE; [RPC_METHOD]?: RPC_METHOD_TYPE; [RPC_RESPONSE_STATUS_CODE]?: RPC_RESPONSE_STATUS_CODE_TYPE; diff --git a/model/attributes/rpc/rpc__grpc__error__bad_request__field_violations.json b/model/attributes/rpc/rpc__grpc__error__bad_request__field_violations.json new file mode 100644 index 00000000..1121d628 --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__bad_request__field_violations.json @@ -0,0 +1,20 @@ +{ + "key": "rpc.grpc.error.bad_request.field_violations", + "brief": "The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation.", + "type": "string[]", + "apply_scrubbing": { + "key": "manual" + }, + "is_in_otel": false, + "visibility": "public", + "example": [ + "{\"field\":\"email\",\"description\":\"must be a valid email address\",\"reason\":\"FIELD_INVALID\",\"localized_message\":{\"locale\":\"en-US\",\"message\":\"Must be a valid email address\"}}" + ], + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.bad_request.field_violations attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__debug_info__detail.json b/model/attributes/rpc/rpc__grpc__error__debug_info__detail.json new file mode 100644 index 00000000..382a9817 --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__debug_info__detail.json @@ -0,0 +1,18 @@ +{ + "key": "rpc.grpc.error.debug_info.detail", + "brief": "Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + "type": "string", + "apply_scrubbing": { + "key": "auto" + }, + "is_in_otel": false, + "visibility": "public", + "example": "at com.example.Service.method(Service.java:42)", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.debug_info.detail attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__debug_info__stack_entries.json b/model/attributes/rpc/rpc__grpc__error__debug_info__stack_entries.json new file mode 100644 index 00000000..0e4fdf0c --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__debug_info__stack_entries.json @@ -0,0 +1,18 @@ +{ + "key": "rpc.grpc.error.debug_info.stack_entries", + "brief": "The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + "type": "string[]", + "apply_scrubbing": { + "key": "auto" + }, + "is_in_otel": false, + "visibility": "public", + "example": ["com.example.Service.method(Service.java:42)", "com.example.Server.handle(Server.java:100)"], + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.debug_info.stack_entries attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__error_info__domain.json b/model/attributes/rpc/rpc__grpc__error__error_info__domain.json new file mode 100644 index 00000000..dd8cbe73 --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__error_info__domain.json @@ -0,0 +1,18 @@ +{ + "key": "rpc.grpc.error.error_info.domain", + "brief": "The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail.", + "type": "string", + "apply_scrubbing": { + "key": "manual" + }, + "is_in_otel": false, + "visibility": "public", + "example": "example.sentry.io", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.error_info.domain attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__error_info__metadata__[key].json b/model/attributes/rpc/rpc__grpc__error__error_info__metadata__[key].json new file mode 100644 index 00000000..ce82bbcb --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__error_info__metadata__[key].json @@ -0,0 +1,19 @@ +{ + "key": "rpc.grpc.error.error_info.metadata.", + "brief": "Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled.", + "has_dynamic_suffix": true, + "type": "string", + "apply_scrubbing": { + "key": "auto" + }, + "is_in_otel": false, + "visibility": "public", + "example": "rpc.grpc.error.error_info.metadata.user_id='123'", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.error_info.metadata. attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__error_info__reason.json b/model/attributes/rpc/rpc__grpc__error__error_info__reason.json new file mode 100644 index 00000000..3fdde422 --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__error_info__reason.json @@ -0,0 +1,18 @@ +{ + "key": "rpc.grpc.error.error_info.reason", + "brief": "The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail.", + "type": "string", + "apply_scrubbing": { + "key": "manual" + }, + "is_in_otel": false, + "visibility": "public", + "example": "FIELD_INVALID", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.error_info.reason attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__precondition_failure__violations.json b/model/attributes/rpc/rpc__grpc__error__precondition_failure__violations.json new file mode 100644 index 00000000..46284683 --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__precondition_failure__violations.json @@ -0,0 +1,20 @@ +{ + "key": "rpc.grpc.error.precondition_failure.violations", + "brief": "The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.", + "type": "string[]", + "apply_scrubbing": { + "key": "auto" + }, + "is_in_otel": false, + "visibility": "public", + "example": [ + "{\"type\":\"TOS\",\"subject\":\"example.com/user/123\",\"description\":\"User must accept the terms of service\"}" + ], + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.precondition_failure.violations attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__quota_failure__violations.json b/model/attributes/rpc/rpc__grpc__error__quota_failure__violations.json new file mode 100644 index 00000000..3b1fabc8 --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__quota_failure__violations.json @@ -0,0 +1,20 @@ +{ + "key": "rpc.grpc.error.quota_failure.violations", + "brief": "The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.", + "type": "string[]", + "apply_scrubbing": { + "key": "auto" + }, + "is_in_otel": false, + "visibility": "public", + "example": [ + "{\"subject\":\"clientip:127.0.0.1\",\"description\":\"Limit checks failed.\",\"api_service\":\"example.googleapis.com\",\"quota_metric\":\"example.googleapis.com/read_requests\",\"quota_id\":\"ReadRequestsPerMinutePerProject\",\"quota_dimensions\":{\"region\":\"us-central1\"},\"quota_value\":1000}" + ], + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.quota_failure.violations attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__resource_info__description.json b/model/attributes/rpc/rpc__grpc__error__resource_info__description.json new file mode 100644 index 00000000..fcf23aee --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__resource_info__description.json @@ -0,0 +1,18 @@ +{ + "key": "rpc.grpc.error.resource_info.description", + "brief": "A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail.", + "type": "string", + "apply_scrubbing": { + "key": "manual" + }, + "is_in_otel": false, + "visibility": "public", + "example": "Instance is not ready for the request.", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.resource_info.description attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__resource_info__owner.json b/model/attributes/rpc/rpc__grpc__error__resource_info__owner.json new file mode 100644 index 00000000..a29e3277 --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__resource_info__owner.json @@ -0,0 +1,18 @@ +{ + "key": "rpc.grpc.error.resource_info.owner", + "brief": "The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + "type": "string", + "apply_scrubbing": { + "key": "auto" + }, + "is_in_otel": false, + "visibility": "public", + "example": "user@example.com", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.resource_info.owner attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__resource_info__resource_name.json b/model/attributes/rpc/rpc__grpc__error__resource_info__resource_name.json new file mode 100644 index 00000000..1d137ac4 --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__resource_info__resource_name.json @@ -0,0 +1,18 @@ +{ + "key": "rpc.grpc.error.resource_info.resource_name", + "brief": "The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + "type": "string", + "apply_scrubbing": { + "key": "auto" + }, + "is_in_otel": false, + "visibility": "public", + "example": "projects/example/instances/example-instance", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.resource_info.resource_name attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__resource_info__resource_type.json b/model/attributes/rpc/rpc__grpc__error__resource_info__resource_type.json new file mode 100644 index 00000000..da77e1dc --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__resource_info__resource_type.json @@ -0,0 +1,18 @@ +{ + "key": "rpc.grpc.error.resource_info.resource_type", + "brief": "The type of resource being accessed, from a google.rpc.ResourceInfo error detail.", + "type": "string", + "apply_scrubbing": { + "key": "manual" + }, + "is_in_otel": false, + "visibility": "public", + "example": "database", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.resource_info.resource_type attribute" + } + ] +} diff --git a/model/attributes/rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json b/model/attributes/rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json new file mode 100644 index 00000000..a2cc2272 --- /dev/null +++ b/model/attributes/rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json @@ -0,0 +1,18 @@ +{ + "key": "rpc.grpc.error.retry_info.retry_delay_in_ms", + "brief": "How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail.", + "type": "integer", + "apply_scrubbing": { + "key": "manual" + }, + "is_in_otel": false, + "visibility": "public", + "example": 5000, + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added rpc.grpc.error.retry_info.retry_delay_in_ms attribute" + } + ] +} diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index c410a509..aae62c51 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -6448,6 +6448,176 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: "App\\Controller::indexAction" """ + # Path: model/attributes/rpc/rpc__grpc__error__bad_request__field_violations.json + RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS: Literal[ + "rpc.grpc.error.bad_request.field_violations" + ] = "rpc.grpc.error.bad_request.field_violations" + """The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation. + + Type: List[str] + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: ["{\"field\":\"email\",\"description\":\"must be a valid email address\",\"reason\":\"FIELD_INVALID\",\"localized_message\":{\"locale\":\"en-US\",\"message\":\"Must be a valid email address\"}}"] + """ + + # Path: model/attributes/rpc/rpc__grpc__error__debug_info__detail.json + RPC_GRPC_ERROR_DEBUG_INFO_DETAIL: Literal["rpc.grpc.error.debug_info.detail"] = ( + "rpc.grpc.error.debug_info.detail" + ) + """Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. + + Type: str + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: "at com.example.Service.method(Service.java:42)" + """ + + # Path: model/attributes/rpc/rpc__grpc__error__debug_info__stack_entries.json + RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES: Literal[ + "rpc.grpc.error.debug_info.stack_entries" + ] = "rpc.grpc.error.debug_info.stack_entries" + """The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. + + Type: List[str] + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: ["com.example.Service.method(Service.java:42)","com.example.Server.handle(Server.java:100)"] + """ + + # Path: model/attributes/rpc/rpc__grpc__error__error_info__domain.json + RPC_GRPC_ERROR_ERROR_INFO_DOMAIN: Literal["rpc.grpc.error.error_info.domain"] = ( + "rpc.grpc.error.error_info.domain" + ) + """The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail. + + Type: str + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: "example.sentry.io" + """ + + # Path: model/attributes/rpc/rpc__grpc__error__error_info__metadata__[key].json + RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY: Literal[ + "rpc.grpc.error.error_info.metadata." + ] = "rpc.grpc.error.error_info.metadata." + """Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled. + + Type: str + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Has Dynamic Suffix: true + Example: "rpc.grpc.error.error_info.metadata.user_id='123'" + """ + + # Path: model/attributes/rpc/rpc__grpc__error__error_info__reason.json + RPC_GRPC_ERROR_ERROR_INFO_REASON: Literal["rpc.grpc.error.error_info.reason"] = ( + "rpc.grpc.error.error_info.reason" + ) + """The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail. + + Type: str + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: "FIELD_INVALID" + """ + + # Path: model/attributes/rpc/rpc__grpc__error__precondition_failure__violations.json + RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS: Literal[ + "rpc.grpc.error.precondition_failure.violations" + ] = "rpc.grpc.error.precondition_failure.violations" + """The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. + + Type: List[str] + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: ["{\"type\":\"TOS\",\"subject\":\"example.com/user/123\",\"description\":\"User must accept the terms of service\"}"] + """ + + # Path: model/attributes/rpc/rpc__grpc__error__quota_failure__violations.json + RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS: Literal[ + "rpc.grpc.error.quota_failure.violations" + ] = "rpc.grpc.error.quota_failure.violations" + """The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. + + Type: List[str] + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: ["{\"subject\":\"clientip:127.0.0.1\",\"description\":\"Limit checks failed.\",\"api_service\":\"example.googleapis.com\",\"quota_metric\":\"example.googleapis.com/read_requests\",\"quota_id\":\"ReadRequestsPerMinutePerProject\",\"quota_dimensions\":{\"region\":\"us-central1\"},\"quota_value\":1000}"] + """ + + # Path: model/attributes/rpc/rpc__grpc__error__resource_info__description.json + RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION: Literal[ + "rpc.grpc.error.resource_info.description" + ] = "rpc.grpc.error.resource_info.description" + """A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail. + + Type: str + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: "Instance is not ready for the request." + """ + + # Path: model/attributes/rpc/rpc__grpc__error__resource_info__owner.json + RPC_GRPC_ERROR_RESOURCE_INFO_OWNER: Literal[ + "rpc.grpc.error.resource_info.owner" + ] = "rpc.grpc.error.resource_info.owner" + """The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. + + Type: str + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: "user@example.com" + """ + + # Path: model/attributes/rpc/rpc__grpc__error__resource_info__resource_name.json + RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME: Literal[ + "rpc.grpc.error.resource_info.resource_name" + ] = "rpc.grpc.error.resource_info.resource_name" + """The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. + + Type: str + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: "projects/example/instances/example-instance" + """ + + # Path: model/attributes/rpc/rpc__grpc__error__resource_info__resource_type.json + RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE: Literal[ + "rpc.grpc.error.resource_info.resource_type" + ] = "rpc.grpc.error.resource_info.resource_type" + """The type of resource being accessed, from a google.rpc.ResourceInfo error detail. + + Type: str + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: "database" + """ + + # Path: model/attributes/rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json + RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS: Literal[ + "rpc.grpc.error.retry_info.retry_delay_in_ms" + ] = "rpc.grpc.error.retry_info.retry_delay_in_ms" + """How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail. + + Type: int + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: 5000 + """ + # Path: model/attributes/rpc/rpc__grpc__status_code.json RPC_GRPC_STATUS_CODE: Literal["rpc.grpc.status_code"] = "rpc.grpc.status_code" """The numeric status code of the gRPC request. @@ -15717,6 +15887,211 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ChangelogEntry(version="0.0.0"), ], ), + "rpc.grpc.error.bad_request.field_violations": AttributeMetadata( + brief="The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation.", + type=AttributeType.STRING_ARRAY, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example=[ + '{"field":"email","description":"must be a valid email address","reason":"FIELD_INVALID","localized_message":{"locale":"en-US","message":"Must be a valid email address"}}' + ], + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.bad_request.field_violations attribute", + ), + ], + ), + "rpc.grpc.error.debug_info.detail": AttributeMetadata( + brief="Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="at com.example.Service.method(Service.java:42)", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.debug_info.detail attribute", + ), + ], + ), + "rpc.grpc.error.debug_info.stack_entries": AttributeMetadata( + brief="The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + type=AttributeType.STRING_ARRAY, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example=[ + "com.example.Service.method(Service.java:42)", + "com.example.Server.handle(Server.java:100)", + ], + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.debug_info.stack_entries attribute", + ), + ], + ), + "rpc.grpc.error.error_info.domain": AttributeMetadata( + brief="The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="example.sentry.io", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.error_info.domain attribute", + ), + ], + ), + "rpc.grpc.error.error_info.metadata.": AttributeMetadata( + brief="Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + has_dynamic_suffix=True, + example="rpc.grpc.error.error_info.metadata.user_id='123'", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.error_info.metadata. attribute", + ), + ], + ), + "rpc.grpc.error.error_info.reason": AttributeMetadata( + brief="The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="FIELD_INVALID", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.error_info.reason attribute", + ), + ], + ), + "rpc.grpc.error.precondition_failure.violations": AttributeMetadata( + brief="The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.", + type=AttributeType.STRING_ARRAY, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example=[ + '{"type":"TOS","subject":"example.com/user/123","description":"User must accept the terms of service"}' + ], + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.precondition_failure.violations attribute", + ), + ], + ), + "rpc.grpc.error.quota_failure.violations": AttributeMetadata( + brief="The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.", + type=AttributeType.STRING_ARRAY, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example=[ + '{"subject":"clientip:127.0.0.1","description":"Limit checks failed.","api_service":"example.googleapis.com","quota_metric":"example.googleapis.com/read_requests","quota_id":"ReadRequestsPerMinutePerProject","quota_dimensions":{"region":"us-central1"},"quota_value":1000}' + ], + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.quota_failure.violations attribute", + ), + ], + ), + "rpc.grpc.error.resource_info.description": AttributeMetadata( + brief="A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="Instance is not ready for the request.", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.resource_info.description attribute", + ), + ], + ), + "rpc.grpc.error.resource_info.owner": AttributeMetadata( + brief="The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="user@example.com", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.resource_info.owner attribute", + ), + ], + ), + "rpc.grpc.error.resource_info.resource_name": AttributeMetadata( + brief="The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="projects/example/instances/example-instance", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.resource_info.resource_name attribute", + ), + ], + ), + "rpc.grpc.error.resource_info.resource_type": AttributeMetadata( + brief="The type of resource being accessed, from a google.rpc.ResourceInfo error detail.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="database", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.resource_info.resource_type attribute", + ), + ], + ), + "rpc.grpc.error.retry_info.retry_delay_in_ms": AttributeMetadata( + brief="How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail.", + type=AttributeType.INTEGER, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example=5000, + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added rpc.grpc.error.retry_info.retry_delay_in_ms attribute", + ), + ], + ), "rpc.grpc.status_code": AttributeMetadata( brief="The numeric status code of the gRPC request.", type=AttributeType.INTEGER, @@ -18386,6 +18761,19 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "resource.deployment.environment.name": str, "resource.render_blocking_status": str, "route": str, + "rpc.grpc.error.bad_request.field_violations": List[str], + "rpc.grpc.error.debug_info.detail": str, + "rpc.grpc.error.debug_info.stack_entries": List[str], + "rpc.grpc.error.error_info.domain": str, + "rpc.grpc.error.error_info.metadata.": str, + "rpc.grpc.error.error_info.reason": str, + "rpc.grpc.error.precondition_failure.violations": List[str], + "rpc.grpc.error.quota_failure.violations": List[str], + "rpc.grpc.error.resource_info.description": str, + "rpc.grpc.error.resource_info.owner": str, + "rpc.grpc.error.resource_info.resource_name": str, + "rpc.grpc.error.resource_info.resource_type": str, + "rpc.grpc.error.retry_info.retry_delay_in_ms": int, "rpc.grpc.status_code": int, "rpc.method": str, "rpc.response.status_code": str, From 0f7ba8be59f46566e894aff5ff4a4c4a7ef34210 Mon Sep 17 00:00:00 2001 From: LucasZF Date: Fri, 3 Jul 2026 19:41:34 -0300 Subject: [PATCH 2/3] Update model/attributes/rpc/rpc__grpc__error__debug_info__detail.json Co-authored-by: Lukas Stracke --- model/attributes/rpc/rpc__grpc__error__debug_info__detail.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/model/attributes/rpc/rpc__grpc__error__debug_info__detail.json b/model/attributes/rpc/rpc__grpc__error__debug_info__detail.json index 382a9817..c36b1555 100644 --- a/model/attributes/rpc/rpc__grpc__error__debug_info__detail.json +++ b/model/attributes/rpc/rpc__grpc__error__debug_info__detail.json @@ -1,6 +1,6 @@ { "key": "rpc.grpc.error.debug_info.detail", - "brief": "Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + "brief": "Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly.", "type": "string", "apply_scrubbing": { "key": "auto" From f0c8eed367808bc63eeec96e437d8f9a9f0f9bc1 Mon Sep 17 00:00:00 2001 From: lucas Date: Fri, 3 Jul 2026 19:59:07 -0300 Subject: [PATCH 3/3] fix(attributes): move grpc error attributes to top-level grpc.* namespace gRPC's own OTel metrics conventions use a top-level grpc.* namespace, so nest the new google.rpc error-detail attributes there instead of under rpc.grpc.error.*, addressing review feedback on PR #460. Co-Authored-By: Claude Sonnet 5 --- .../sentry-conventions/src/attributes.ts | 1104 ++++++++--------- ...error__bad_request__field_violations.json} | 4 +- .../grpc__error__debug_info__detail.json} | 4 +- ...pc__error__debug_info__stack_entries.json} | 4 +- .../grpc__error__error_info__domain.json} | 4 +- ...__error__error_info__metadata__[key].json} | 6 +- .../grpc__error__error_info__reason.json} | 4 +- ...or__precondition_failure__violations.json} | 4 +- ...pc__error__quota_failure__violations.json} | 4 +- ...c__error__resource_info__description.json} | 4 +- .../grpc__error__resource_info__owner.json} | 4 +- ..._error__resource_info__resource_name.json} | 4 +- ..._error__resource_info__resource_type.json} | 4 +- ...error__retry_info__retry_delay_in_ms.json} | 4 +- python/src/sentry_conventions/attributes.py | 800 ++++++------ 15 files changed, 973 insertions(+), 985 deletions(-) rename model/attributes/{rpc/rpc__grpc__error__bad_request__field_violations.json => grpc/grpc__error__bad_request__field_violations.json} (82%) rename model/attributes/{rpc/rpc__grpc__error__debug_info__detail.json => grpc/grpc__error__debug_info__detail.json} (80%) rename model/attributes/{rpc/rpc__grpc__error__debug_info__stack_entries.json => grpc/grpc__error__debug_info__stack_entries.json} (78%) rename model/attributes/{rpc/rpc__grpc__error__error_info__domain.json => grpc/grpc__error__error_info__domain.json} (75%) rename model/attributes/{rpc/rpc__grpc__error__error_info__metadata__[key].json => grpc/grpc__error__error_info__metadata__[key].json} (68%) rename model/attributes/{rpc/rpc__grpc__error__error_info__reason.json => grpc/grpc__error__error_info__reason.json} (75%) rename model/attributes/{rpc/rpc__grpc__error__precondition_failure__violations.json => grpc/grpc__error__precondition_failure__violations.json} (81%) rename model/attributes/{rpc/rpc__grpc__error__quota_failure__violations.json => grpc/grpc__error__quota_failure__violations.json} (88%) rename model/attributes/{rpc/rpc__grpc__error__resource_info__description.json => grpc/grpc__error__resource_info__description.json} (74%) rename model/attributes/{rpc/rpc__grpc__error__resource_info__owner.json => grpc/grpc__error__resource_info__owner.json} (78%) rename model/attributes/{rpc/rpc__grpc__error__resource_info__resource_name.json => grpc/grpc__error__resource_info__resource_name.json} (75%) rename model/attributes/{rpc/rpc__grpc__error__resource_info__resource_type.json => grpc/grpc__error__resource_info__resource_type.json} (70%) rename model/attributes/{rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json => grpc/grpc__error__retry_info__retry_delay_in_ms.json} (71%) diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index ec7a909e..8b50b800 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -7020,6 +7020,281 @@ export const GRAPHQL_OPERATION_TYPE = 'graphql.operation.type'; */ export type GRAPHQL_OPERATION_TYPE_TYPE = string; +// Path: model/attributes/grpc/grpc__error__bad_request__field_violations.json + +/** + * The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation. `grpc.error.bad_request.field_violations` + * + * Attribute Value Type: `Array` {@link GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example ["{\"field\":\"email\",\"description\":\"must be a valid email address\",\"reason\":\"FIELD_INVALID\",\"localized_message\":{\"locale\":\"en-US\",\"message\":\"Must be a valid email address\"}}"] + */ +export const GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS = 'grpc.error.bad_request.field_violations'; + +/** + * Type for {@link GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS} grpc.error.bad_request.field_violations + */ +export type GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS_TYPE = Array; + +// Path: model/attributes/grpc/grpc__error__debug_info__detail.json + +/** + * Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly. `grpc.error.debug_info.detail` + * + * Attribute Value Type: `string` {@link GRPC_ERROR_DEBUG_INFO_DETAIL_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "at com.example.Service.method(Service.java:42)" + */ +export const GRPC_ERROR_DEBUG_INFO_DETAIL = 'grpc.error.debug_info.detail'; + +/** + * Type for {@link GRPC_ERROR_DEBUG_INFO_DETAIL} grpc.error.debug_info.detail + */ +export type GRPC_ERROR_DEBUG_INFO_DETAIL_TYPE = string; + +// Path: model/attributes/grpc/grpc__error__debug_info__stack_entries.json + +/** + * The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. `grpc.error.debug_info.stack_entries` + * + * Attribute Value Type: `Array` {@link GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example ["com.example.Service.method(Service.java:42)","com.example.Server.handle(Server.java:100)"] + */ +export const GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES = 'grpc.error.debug_info.stack_entries'; + +/** + * Type for {@link GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES} grpc.error.debug_info.stack_entries + */ +export type GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES_TYPE = Array; + +// Path: model/attributes/grpc/grpc__error__error_info__domain.json + +/** + * The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail. `grpc.error.error_info.domain` + * + * Attribute Value Type: `string` {@link GRPC_ERROR_ERROR_INFO_DOMAIN_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "example.sentry.io" + */ +export const GRPC_ERROR_ERROR_INFO_DOMAIN = 'grpc.error.error_info.domain'; + +/** + * Type for {@link GRPC_ERROR_ERROR_INFO_DOMAIN} grpc.error.error_info.domain + */ +export type GRPC_ERROR_ERROR_INFO_DOMAIN_TYPE = string; + +// Path: model/attributes/grpc/grpc__error__error_info__metadata__[key].json + +/** + * Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled. `grpc.error.error_info.metadata.` + * + * Attribute Value Type: `string` {@link GRPC_ERROR_ERROR_INFO_METADATA_KEY_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * Has Dynamic Suffix: true + * + * @example "grpc.error.error_info.metadata.user_id='123'" + */ +export const GRPC_ERROR_ERROR_INFO_METADATA_KEY = 'grpc.error.error_info.metadata.'; + +/** + * Type for {@link GRPC_ERROR_ERROR_INFO_METADATA_KEY} grpc.error.error_info.metadata. + */ +export type GRPC_ERROR_ERROR_INFO_METADATA_KEY_TYPE = string; + +// Path: model/attributes/grpc/grpc__error__error_info__reason.json + +/** + * The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail. `grpc.error.error_info.reason` + * + * Attribute Value Type: `string` {@link GRPC_ERROR_ERROR_INFO_REASON_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "FIELD_INVALID" + */ +export const GRPC_ERROR_ERROR_INFO_REASON = 'grpc.error.error_info.reason'; + +/** + * Type for {@link GRPC_ERROR_ERROR_INFO_REASON} grpc.error.error_info.reason + */ +export type GRPC_ERROR_ERROR_INFO_REASON_TYPE = string; + +// Path: model/attributes/grpc/grpc__error__precondition_failure__violations.json + +/** + * The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. `grpc.error.precondition_failure.violations` + * + * Attribute Value Type: `Array` {@link GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example ["{\"type\":\"TOS\",\"subject\":\"example.com/user/123\",\"description\":\"User must accept the terms of service\"}"] + */ +export const GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS = 'grpc.error.precondition_failure.violations'; + +/** + * Type for {@link GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS} grpc.error.precondition_failure.violations + */ +export type GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS_TYPE = Array; + +// Path: model/attributes/grpc/grpc__error__quota_failure__violations.json + +/** + * The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. `grpc.error.quota_failure.violations` + * + * Attribute Value Type: `Array` {@link GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example ["{\"subject\":\"clientip:127.0.0.1\",\"description\":\"Limit checks failed.\",\"api_service\":\"example.googleapis.com\",\"quota_metric\":\"example.googleapis.com/read_requests\",\"quota_id\":\"ReadRequestsPerMinutePerProject\",\"quota_dimensions\":{\"region\":\"us-central1\"},\"quota_value\":1000}"] + */ +export const GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS = 'grpc.error.quota_failure.violations'; + +/** + * Type for {@link GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS} grpc.error.quota_failure.violations + */ +export type GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS_TYPE = Array; + +// Path: model/attributes/grpc/grpc__error__resource_info__description.json + +/** + * A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail. `grpc.error.resource_info.description` + * + * Attribute Value Type: `string` {@link GRPC_ERROR_RESOURCE_INFO_DESCRIPTION_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "Instance is not ready for the request." + */ +export const GRPC_ERROR_RESOURCE_INFO_DESCRIPTION = 'grpc.error.resource_info.description'; + +/** + * Type for {@link GRPC_ERROR_RESOURCE_INFO_DESCRIPTION} grpc.error.resource_info.description + */ +export type GRPC_ERROR_RESOURCE_INFO_DESCRIPTION_TYPE = string; + +// Path: model/attributes/grpc/grpc__error__resource_info__owner.json + +/** + * The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. `grpc.error.resource_info.owner` + * + * Attribute Value Type: `string` {@link GRPC_ERROR_RESOURCE_INFO_OWNER_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "user@example.com" + */ +export const GRPC_ERROR_RESOURCE_INFO_OWNER = 'grpc.error.resource_info.owner'; + +/** + * Type for {@link GRPC_ERROR_RESOURCE_INFO_OWNER} grpc.error.resource_info.owner + */ +export type GRPC_ERROR_RESOURCE_INFO_OWNER_TYPE = string; + +// Path: model/attributes/grpc/grpc__error__resource_info__resource_name.json + +/** + * The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. `grpc.error.resource_info.resource_name` + * + * Attribute Value Type: `string` {@link GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME_TYPE} + * + * Apply Scrubbing: auto + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "projects/example/instances/example-instance" + */ +export const GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME = 'grpc.error.resource_info.resource_name'; + +/** + * Type for {@link GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME} grpc.error.resource_info.resource_name + */ +export type GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME_TYPE = string; + +// Path: model/attributes/grpc/grpc__error__resource_info__resource_type.json + +/** + * The type of resource being accessed, from a google.rpc.ResourceInfo error detail. `grpc.error.resource_info.resource_type` + * + * Attribute Value Type: `string` {@link GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example "database" + */ +export const GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE = 'grpc.error.resource_info.resource_type'; + +/** + * Type for {@link GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE} grpc.error.resource_info.resource_type + */ +export type GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE_TYPE = string; + +// Path: model/attributes/grpc/grpc__error__retry_info__retry_delay_in_ms.json + +/** + * How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail. `grpc.error.retry_info.retry_delay_in_ms` + * + * Attribute Value Type: `number` {@link GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example 5000 + */ +export const GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS = 'grpc.error.retry_info.retry_delay_in_ms'; + +/** + * Type for {@link GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS} grpc.error.retry_info.retry_delay_in_ms + */ +export type GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS_TYPE = number; + // Path: model/attributes/hardwareConcurrency.json /** @@ -10980,393 +11255,118 @@ export const ROUTE = 'route'; */ export type ROUTE_TYPE = string; -// Path: model/attributes/rpc/rpc__grpc__error__bad_request__field_violations.json +// Path: model/attributes/rpc/rpc__grpc__status_code.json /** - * The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation. `rpc.grpc.error.bad_request.field_violations` + * The numeric status code of the gRPC request. `rpc.grpc.status_code` * - * Attribute Value Type: `Array` {@link RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS_TYPE} + * Attribute Value Type: `number` {@link RPC_GRPC_STATUS_CODE_TYPE} * * Apply Scrubbing: manual * - * Attribute defined in OTEL: No + * Attribute defined in OTEL: Yes * Visibility: public * - * @example ["{\"field\":\"email\",\"description\":\"must be a valid email address\",\"reason\":\"FIELD_INVALID\",\"localized_message\":{\"locale\":\"en-US\",\"message\":\"Must be a valid email address\"}}"] + * @example 2 */ -export const RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS = 'rpc.grpc.error.bad_request.field_violations'; +export const RPC_GRPC_STATUS_CODE = 'rpc.grpc.status_code'; /** - * Type for {@link RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS} rpc.grpc.error.bad_request.field_violations + * Type for {@link RPC_GRPC_STATUS_CODE} rpc.grpc.status_code */ -export type RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS_TYPE = Array; +export type RPC_GRPC_STATUS_CODE_TYPE = number; -// Path: model/attributes/rpc/rpc__grpc__error__debug_info__detail.json +// Path: model/attributes/rpc/rpc__method.json /** - * Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. `rpc.grpc.error.debug_info.detail` + * The fully-qualified logical name of the method from the RPC interface perspective. `rpc.method` * - * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_DEBUG_INFO_DETAIL_TYPE} + * Attribute Value Type: `string` {@link RPC_METHOD_TYPE} * - * Apply Scrubbing: auto + * Apply Scrubbing: manual * - * Attribute defined in OTEL: No + * Attribute defined in OTEL: Yes * Visibility: public * - * @example "at com.example.Service.method(Service.java:42)" + * @example "com.example.ExampleService/exampleMethod" */ -export const RPC_GRPC_ERROR_DEBUG_INFO_DETAIL = 'rpc.grpc.error.debug_info.detail'; +export const RPC_METHOD = 'rpc.method'; /** - * Type for {@link RPC_GRPC_ERROR_DEBUG_INFO_DETAIL} rpc.grpc.error.debug_info.detail + * Type for {@link RPC_METHOD} rpc.method */ -export type RPC_GRPC_ERROR_DEBUG_INFO_DETAIL_TYPE = string; +export type RPC_METHOD_TYPE = string; -// Path: model/attributes/rpc/rpc__grpc__error__debug_info__stack_entries.json +// Path: model/attributes/rpc/rpc__response__status_code.json /** - * The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. `rpc.grpc.error.debug_info.stack_entries` + * Status code of the RPC returned by the RPC server or generated by the client. `rpc.response.status_code` * - * Attribute Value Type: `Array` {@link RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES_TYPE} + * Attribute Value Type: `string` {@link RPC_RESPONSE_STATUS_CODE_TYPE} * - * Apply Scrubbing: auto + * Apply Scrubbing: manual * - * Attribute defined in OTEL: No + * Attribute defined in OTEL: Yes * Visibility: public * - * @example ["com.example.Service.method(Service.java:42)","com.example.Server.handle(Server.java:100)"] + * @example "DEADLINE_EXCEEDED" */ -export const RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES = 'rpc.grpc.error.debug_info.stack_entries'; +export const RPC_RESPONSE_STATUS_CODE = 'rpc.response.status_code'; /** - * Type for {@link RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES} rpc.grpc.error.debug_info.stack_entries + * Type for {@link RPC_RESPONSE_STATUS_CODE} rpc.response.status_code */ -export type RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES_TYPE = Array; +export type RPC_RESPONSE_STATUS_CODE_TYPE = string; -// Path: model/attributes/rpc/rpc__grpc__error__error_info__domain.json +// Path: model/attributes/rpc/rpc__service.json /** - * The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail. `rpc.grpc.error.error_info.domain` + * The full (logical) name of the service being called, including its package name, if applicable. `rpc.service` * - * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_ERROR_INFO_DOMAIN_TYPE} + * Attribute Value Type: `string` {@link RPC_SERVICE_TYPE} * * Apply Scrubbing: manual * - * Attribute defined in OTEL: No + * Attribute defined in OTEL: Yes * Visibility: public * - * @example "example.sentry.io" + * @example "myService.BestService" */ -export const RPC_GRPC_ERROR_ERROR_INFO_DOMAIN = 'rpc.grpc.error.error_info.domain'; +export const RPC_SERVICE = 'rpc.service'; /** - * Type for {@link RPC_GRPC_ERROR_ERROR_INFO_DOMAIN} rpc.grpc.error.error_info.domain + * Type for {@link RPC_SERVICE} rpc.service */ -export type RPC_GRPC_ERROR_ERROR_INFO_DOMAIN_TYPE = string; +export type RPC_SERVICE_TYPE = string; -// Path: model/attributes/rpc/rpc__grpc__error__error_info__metadata__[key].json +// Path: model/attributes/runtime/runtime__build.json /** - * Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled. `rpc.grpc.error.error_info.metadata.` + * The application build string, when it is separate from the version. `runtime.build` * - * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY_TYPE} + * Attribute Value Type: `string` {@link RUNTIME_BUILD_TYPE} * - * Apply Scrubbing: auto + * Apply Scrubbing: manual * * Attribute defined in OTEL: No * Visibility: public * - * Has Dynamic Suffix: true - * - * @example "rpc.grpc.error.error_info.metadata.user_id='123'" + * @deprecated - The runtime.* namespace is deprecated in favor of process.runtime.*. No direct OTel equivalent exists for this attribute. + * @example "stable" */ -export const RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY = 'rpc.grpc.error.error_info.metadata.'; +export const RUNTIME_BUILD = 'runtime.build'; /** - * Type for {@link RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY} rpc.grpc.error.error_info.metadata. + * Type for {@link RUNTIME_BUILD} runtime.build */ -export type RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY_TYPE = string; +export type RUNTIME_BUILD_TYPE = string; -// Path: model/attributes/rpc/rpc__grpc__error__error_info__reason.json +// Path: model/attributes/runtime/runtime__name.json /** - * The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail. `rpc.grpc.error.error_info.reason` + * The name of the runtime. For example node, CPython, or rustc. `runtime.name` * - * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_ERROR_INFO_REASON_TYPE} - * - * Apply Scrubbing: manual - * - * Attribute defined in OTEL: No - * Visibility: public - * - * @example "FIELD_INVALID" - */ -export const RPC_GRPC_ERROR_ERROR_INFO_REASON = 'rpc.grpc.error.error_info.reason'; - -/** - * Type for {@link RPC_GRPC_ERROR_ERROR_INFO_REASON} rpc.grpc.error.error_info.reason - */ -export type RPC_GRPC_ERROR_ERROR_INFO_REASON_TYPE = string; - -// Path: model/attributes/rpc/rpc__grpc__error__precondition_failure__violations.json - -/** - * The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. `rpc.grpc.error.precondition_failure.violations` - * - * Attribute Value Type: `Array` {@link RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS_TYPE} - * - * Apply Scrubbing: auto - * - * Attribute defined in OTEL: No - * Visibility: public - * - * @example ["{\"type\":\"TOS\",\"subject\":\"example.com/user/123\",\"description\":\"User must accept the terms of service\"}"] - */ -export const RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS = 'rpc.grpc.error.precondition_failure.violations'; - -/** - * Type for {@link RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS} rpc.grpc.error.precondition_failure.violations - */ -export type RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS_TYPE = Array; - -// Path: model/attributes/rpc/rpc__grpc__error__quota_failure__violations.json - -/** - * The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. `rpc.grpc.error.quota_failure.violations` - * - * Attribute Value Type: `Array` {@link RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS_TYPE} - * - * Apply Scrubbing: auto - * - * Attribute defined in OTEL: No - * Visibility: public - * - * @example ["{\"subject\":\"clientip:127.0.0.1\",\"description\":\"Limit checks failed.\",\"api_service\":\"example.googleapis.com\",\"quota_metric\":\"example.googleapis.com/read_requests\",\"quota_id\":\"ReadRequestsPerMinutePerProject\",\"quota_dimensions\":{\"region\":\"us-central1\"},\"quota_value\":1000}"] - */ -export const RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS = 'rpc.grpc.error.quota_failure.violations'; - -/** - * Type for {@link RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS} rpc.grpc.error.quota_failure.violations - */ -export type RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS_TYPE = Array; - -// Path: model/attributes/rpc/rpc__grpc__error__resource_info__description.json - -/** - * A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail. `rpc.grpc.error.resource_info.description` - * - * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION_TYPE} - * - * Apply Scrubbing: manual - * - * Attribute defined in OTEL: No - * Visibility: public - * - * @example "Instance is not ready for the request." - */ -export const RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION = 'rpc.grpc.error.resource_info.description'; - -/** - * Type for {@link RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION} rpc.grpc.error.resource_info.description - */ -export type RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION_TYPE = string; - -// Path: model/attributes/rpc/rpc__grpc__error__resource_info__owner.json - -/** - * The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. `rpc.grpc.error.resource_info.owner` - * - * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_RESOURCE_INFO_OWNER_TYPE} - * - * Apply Scrubbing: auto - * - * Attribute defined in OTEL: No - * Visibility: public - * - * @example "user@example.com" - */ -export const RPC_GRPC_ERROR_RESOURCE_INFO_OWNER = 'rpc.grpc.error.resource_info.owner'; - -/** - * Type for {@link RPC_GRPC_ERROR_RESOURCE_INFO_OWNER} rpc.grpc.error.resource_info.owner - */ -export type RPC_GRPC_ERROR_RESOURCE_INFO_OWNER_TYPE = string; - -// Path: model/attributes/rpc/rpc__grpc__error__resource_info__resource_name.json - -/** - * The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. `rpc.grpc.error.resource_info.resource_name` - * - * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME_TYPE} - * - * Apply Scrubbing: auto - * - * Attribute defined in OTEL: No - * Visibility: public - * - * @example "projects/example/instances/example-instance" - */ -export const RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME = 'rpc.grpc.error.resource_info.resource_name'; - -/** - * Type for {@link RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME} rpc.grpc.error.resource_info.resource_name - */ -export type RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME_TYPE = string; - -// Path: model/attributes/rpc/rpc__grpc__error__resource_info__resource_type.json - -/** - * The type of resource being accessed, from a google.rpc.ResourceInfo error detail. `rpc.grpc.error.resource_info.resource_type` - * - * Attribute Value Type: `string` {@link RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE_TYPE} - * - * Apply Scrubbing: manual - * - * Attribute defined in OTEL: No - * Visibility: public - * - * @example "database" - */ -export const RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE = 'rpc.grpc.error.resource_info.resource_type'; - -/** - * Type for {@link RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE} rpc.grpc.error.resource_info.resource_type - */ -export type RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE_TYPE = string; - -// Path: model/attributes/rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json - -/** - * How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail. `rpc.grpc.error.retry_info.retry_delay_in_ms` - * - * Attribute Value Type: `number` {@link RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS_TYPE} - * - * Apply Scrubbing: manual - * - * Attribute defined in OTEL: No - * Visibility: public - * - * @example 5000 - */ -export const RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS = 'rpc.grpc.error.retry_info.retry_delay_in_ms'; - -/** - * Type for {@link RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS} rpc.grpc.error.retry_info.retry_delay_in_ms - */ -export type RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS_TYPE = number; - -// Path: model/attributes/rpc/rpc__grpc__status_code.json - -/** - * The numeric status code of the gRPC request. `rpc.grpc.status_code` - * - * Attribute Value Type: `number` {@link RPC_GRPC_STATUS_CODE_TYPE} - * - * Apply Scrubbing: manual - * - * Attribute defined in OTEL: Yes - * Visibility: public - * - * @example 2 - */ -export const RPC_GRPC_STATUS_CODE = 'rpc.grpc.status_code'; - -/** - * Type for {@link RPC_GRPC_STATUS_CODE} rpc.grpc.status_code - */ -export type RPC_GRPC_STATUS_CODE_TYPE = number; - -// Path: model/attributes/rpc/rpc__method.json - -/** - * The fully-qualified logical name of the method from the RPC interface perspective. `rpc.method` - * - * Attribute Value Type: `string` {@link RPC_METHOD_TYPE} - * - * Apply Scrubbing: manual - * - * Attribute defined in OTEL: Yes - * Visibility: public - * - * @example "com.example.ExampleService/exampleMethod" - */ -export const RPC_METHOD = 'rpc.method'; - -/** - * Type for {@link RPC_METHOD} rpc.method - */ -export type RPC_METHOD_TYPE = string; - -// Path: model/attributes/rpc/rpc__response__status_code.json - -/** - * Status code of the RPC returned by the RPC server or generated by the client. `rpc.response.status_code` - * - * Attribute Value Type: `string` {@link RPC_RESPONSE_STATUS_CODE_TYPE} - * - * Apply Scrubbing: manual - * - * Attribute defined in OTEL: Yes - * Visibility: public - * - * @example "DEADLINE_EXCEEDED" - */ -export const RPC_RESPONSE_STATUS_CODE = 'rpc.response.status_code'; - -/** - * Type for {@link RPC_RESPONSE_STATUS_CODE} rpc.response.status_code - */ -export type RPC_RESPONSE_STATUS_CODE_TYPE = string; - -// Path: model/attributes/rpc/rpc__service.json - -/** - * The full (logical) name of the service being called, including its package name, if applicable. `rpc.service` - * - * Attribute Value Type: `string` {@link RPC_SERVICE_TYPE} - * - * Apply Scrubbing: manual - * - * Attribute defined in OTEL: Yes - * Visibility: public - * - * @example "myService.BestService" - */ -export const RPC_SERVICE = 'rpc.service'; - -/** - * Type for {@link 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} - * - * Apply Scrubbing: manual - * - * Attribute defined in OTEL: No - * Visibility: public - * - * @deprecated - The runtime.* namespace is deprecated in favor of process.runtime.*. No direct OTel equivalent exists for this attribute. - * @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} + * Attribute Value Type: `string` {@link RUNTIME_NAME_TYPE} * * Apply Scrubbing: manual * @@ -15352,6 +15352,19 @@ export const ATTRIBUTE_TYPE: Record = { 'graphql.document': 'string', 'graphql.operation.name': 'string', 'graphql.operation.type': 'string', + 'grpc.error.bad_request.field_violations': 'string[]', + 'grpc.error.debug_info.detail': 'string', + 'grpc.error.debug_info.stack_entries': 'string[]', + 'grpc.error.error_info.domain': 'string', + 'grpc.error.error_info.metadata.': 'string', + 'grpc.error.error_info.reason': 'string', + 'grpc.error.precondition_failure.violations': 'string[]', + 'grpc.error.quota_failure.violations': 'string[]', + 'grpc.error.resource_info.description': 'string', + 'grpc.error.resource_info.owner': 'string', + 'grpc.error.resource_info.resource_name': 'string', + 'grpc.error.resource_info.resource_type': 'string', + 'grpc.error.retry_info.retry_delay_in_ms': 'integer', hardwareConcurrency: 'string', 'http.client_ip': 'string', 'http.decoded_response_content_length': 'integer', @@ -15531,19 +15544,6 @@ export const ATTRIBUTE_TYPE: Record = { 'resource.deployment.environment.name': 'string', 'resource.render_blocking_status': 'string', route: 'string', - 'rpc.grpc.error.bad_request.field_violations': 'string[]', - 'rpc.grpc.error.debug_info.detail': 'string', - 'rpc.grpc.error.debug_info.stack_entries': 'string[]', - 'rpc.grpc.error.error_info.domain': 'string', - 'rpc.grpc.error.error_info.metadata.': 'string', - 'rpc.grpc.error.error_info.reason': 'string', - 'rpc.grpc.error.precondition_failure.violations': 'string[]', - 'rpc.grpc.error.quota_failure.violations': 'string[]', - 'rpc.grpc.error.resource_info.description': 'string', - 'rpc.grpc.error.resource_info.owner': 'string', - 'rpc.grpc.error.resource_info.resource_name': 'string', - 'rpc.grpc.error.resource_info.resource_type': 'string', - 'rpc.grpc.error.retry_info.retry_delay_in_ms': 'integer', 'rpc.grpc.status_code': 'integer', 'rpc.method': 'string', 'rpc.response.status_code': 'string', @@ -16036,6 +16036,19 @@ export type AttributeName = | typeof GRAPHQL_DOCUMENT | typeof GRAPHQL_OPERATION_NAME | typeof GRAPHQL_OPERATION_TYPE + | typeof GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS + | typeof GRPC_ERROR_DEBUG_INFO_DETAIL + | typeof GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES + | typeof GRPC_ERROR_ERROR_INFO_DOMAIN + | typeof GRPC_ERROR_ERROR_INFO_METADATA_KEY + | typeof GRPC_ERROR_ERROR_INFO_REASON + | typeof GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS + | typeof GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS + | typeof GRPC_ERROR_RESOURCE_INFO_DESCRIPTION + | typeof GRPC_ERROR_RESOURCE_INFO_OWNER + | typeof GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME + | typeof GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE + | typeof GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS | typeof HARDWARECONCURRENCY | typeof HTTP_CLIENT_IP | typeof HTTP_DECODED_RESPONSE_CONTENT_LENGTH @@ -16215,19 +16228,6 @@ export type AttributeName = | typeof RESOURCE_DEPLOYMENT_ENVIRONMENT_NAME | typeof RESOURCE_RENDER_BLOCKING_STATUS | typeof ROUTE - | typeof RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS - | typeof RPC_GRPC_ERROR_DEBUG_INFO_DETAIL - | typeof RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES - | typeof RPC_GRPC_ERROR_ERROR_INFO_DOMAIN - | typeof RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY - | typeof RPC_GRPC_ERROR_ERROR_INFO_REASON - | typeof RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS - | typeof RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS - | typeof RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION - | typeof RPC_GRPC_ERROR_RESOURCE_INFO_OWNER - | typeof RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME - | typeof RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE - | typeof RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS | typeof RPC_GRPC_STATUS_CODE | typeof RPC_METHOD | typeof RPC_RESPONSE_STATUS_CODE @@ -20749,41 +20749,206 @@ export const ATTRIBUTE_METADATA: Record = { example: 'query', changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, - hardwareConcurrency: { - brief: 'The number of logical CPU cores available.', - type: 'string', + 'grpc.error.bad_request.field_violations': { + brief: + 'The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation.', + type: 'string[]', applyScrubbing: { key: 'manual', }, isInOtel: false, visibility: 'public', - example: '14', - deprecation: { - replacement: 'device.processor_count', - reason: 'Old namespace-less attribute, to be replaced with device.processor_count for span-first future', - }, - aliases: ['device.processor_count'], + example: [ + '{"field":"email","description":"must be a valid email address","reason":"FIELD_INVALID","localized_message":{"locale":"en-US","message":"Must be a valid email address"}}', + ], changelog: [ - { - version: '0.5.0', - prs: [281, 300], - description: "Added and deprecated attribute to document JS SDK's current behaviour", - }, + { version: 'next', prs: [460], description: 'Added grpc.error.bad_request.field_violations attribute' }, ], }, - 'http.client_ip': { + 'grpc.error.debug_info.detail': { brief: - 'Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.', + 'Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly.', type: 'string', applyScrubbing: { key: 'auto', }, - isInOtel: true, + isInOtel: false, visibility: 'public', - example: 'example.com', - deprecation: { - replacement: 'client.address', - }, + example: 'at com.example.Service.method(Service.java:42)', + changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.debug_info.detail attribute' }], + }, + 'grpc.error.debug_info.stack_entries': { + brief: + 'The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.', + type: 'string[]', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: ['com.example.Service.method(Service.java:42)', 'com.example.Server.handle(Server.java:100)'], + changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.debug_info.stack_entries attribute' }], + }, + 'grpc.error.error_info.domain': { + brief: 'The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail.', + type: 'string', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: 'example.sentry.io', + changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.error_info.domain attribute' }], + }, + 'grpc.error.error_info.metadata.': { + brief: + 'Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled.', + type: 'string', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + hasDynamicSuffix: true, + example: "grpc.error.error_info.metadata.user_id='123'", + changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.error_info.metadata. attribute' }], + }, + 'grpc.error.error_info.reason': { + brief: + 'The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail.', + type: 'string', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: 'FIELD_INVALID', + changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.error_info.reason attribute' }], + }, + 'grpc.error.precondition_failure.violations': { + brief: + 'The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.', + type: 'string[]', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: ['{"type":"TOS","subject":"example.com/user/123","description":"User must accept the terms of service"}'], + changelog: [ + { version: 'next', prs: [460], description: 'Added grpc.error.precondition_failure.violations attribute' }, + ], + }, + 'grpc.error.quota_failure.violations': { + brief: + 'The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.', + type: 'string[]', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: [ + '{"subject":"clientip:127.0.0.1","description":"Limit checks failed.","api_service":"example.googleapis.com","quota_metric":"example.googleapis.com/read_requests","quota_id":"ReadRequestsPerMinutePerProject","quota_dimensions":{"region":"us-central1"},"quota_value":1000}', + ], + changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.quota_failure.violations attribute' }], + }, + 'grpc.error.resource_info.description': { + brief: + 'A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail.', + type: 'string', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: 'Instance is not ready for the request.', + changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.resource_info.description attribute' }], + }, + 'grpc.error.resource_info.owner': { + brief: + 'The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.', + type: 'string', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: 'user@example.com', + changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.resource_info.owner attribute' }], + }, + 'grpc.error.resource_info.resource_name': { + brief: + 'The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.', + type: 'string', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + example: 'projects/example/instances/example-instance', + changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.resource_info.resource_name attribute' }], + }, + 'grpc.error.resource_info.resource_type': { + brief: 'The type of resource being accessed, from a google.rpc.ResourceInfo error detail.', + type: 'string', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: 'database', + changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.resource_info.resource_type attribute' }], + }, + 'grpc.error.retry_info.retry_delay_in_ms': { + brief: + 'How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail.', + type: 'integer', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: 5000, + changelog: [ + { version: 'next', prs: [460], description: 'Added grpc.error.retry_info.retry_delay_in_ms attribute' }, + ], + }, + hardwareConcurrency: { + brief: 'The number of logical CPU cores available.', + type: 'string', + applyScrubbing: { + key: 'manual', + }, + isInOtel: false, + visibility: 'public', + example: '14', + deprecation: { + replacement: 'device.processor_count', + reason: 'Old namespace-less attribute, to be replaced with device.processor_count for span-first future', + }, + aliases: ['device.processor_count'], + changelog: [ + { + version: '0.5.0', + prs: [281, 300], + description: "Added and deprecated attribute to document JS SDK's current behaviour", + }, + ], + }, + 'http.client_ip': { + brief: + 'Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.', + type: 'string', + applyScrubbing: { + key: 'auto', + }, + isInOtel: true, + visibility: 'public', + example: 'example.com', + deprecation: { + replacement: 'client.address', + }, aliases: ['client.address'], changelog: [{ version: '0.1.0', prs: [61, 106, 127] }, { version: '0.0.0' }], }, @@ -23141,183 +23306,6 @@ export const ATTRIBUTE_METADATA: Record = { aliases: ['http.route'], changelog: [{ version: '0.1.0', prs: [61, 74] }, { version: '0.0.0' }], }, - 'rpc.grpc.error.bad_request.field_violations': { - brief: - 'The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation.', - type: 'string[]', - applyScrubbing: { - key: 'manual', - }, - isInOtel: false, - visibility: 'public', - example: [ - '{"field":"email","description":"must be a valid email address","reason":"FIELD_INVALID","localized_message":{"locale":"en-US","message":"Must be a valid email address"}}', - ], - changelog: [ - { version: 'next', prs: [460], description: 'Added rpc.grpc.error.bad_request.field_violations attribute' }, - ], - }, - 'rpc.grpc.error.debug_info.detail': { - brief: - 'Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.', - type: 'string', - applyScrubbing: { - key: 'auto', - }, - isInOtel: false, - visibility: 'public', - example: 'at com.example.Service.method(Service.java:42)', - changelog: [{ version: 'next', prs: [460], description: 'Added rpc.grpc.error.debug_info.detail attribute' }], - }, - 'rpc.grpc.error.debug_info.stack_entries': { - brief: - 'The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.', - type: 'string[]', - applyScrubbing: { - key: 'auto', - }, - isInOtel: false, - visibility: 'public', - example: ['com.example.Service.method(Service.java:42)', 'com.example.Server.handle(Server.java:100)'], - changelog: [ - { version: 'next', prs: [460], description: 'Added rpc.grpc.error.debug_info.stack_entries attribute' }, - ], - }, - 'rpc.grpc.error.error_info.domain': { - brief: 'The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail.', - type: 'string', - applyScrubbing: { - key: 'manual', - }, - isInOtel: false, - visibility: 'public', - example: 'example.sentry.io', - changelog: [{ version: 'next', prs: [460], description: 'Added rpc.grpc.error.error_info.domain attribute' }], - }, - 'rpc.grpc.error.error_info.metadata.': { - brief: - 'Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled.', - type: 'string', - applyScrubbing: { - key: 'auto', - }, - isInOtel: false, - visibility: 'public', - hasDynamicSuffix: true, - example: "rpc.grpc.error.error_info.metadata.user_id='123'", - changelog: [ - { version: 'next', prs: [460], description: 'Added rpc.grpc.error.error_info.metadata. attribute' }, - ], - }, - 'rpc.grpc.error.error_info.reason': { - brief: - 'The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail.', - type: 'string', - applyScrubbing: { - key: 'manual', - }, - isInOtel: false, - visibility: 'public', - example: 'FIELD_INVALID', - changelog: [{ version: 'next', prs: [460], description: 'Added rpc.grpc.error.error_info.reason attribute' }], - }, - 'rpc.grpc.error.precondition_failure.violations': { - brief: - 'The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.', - type: 'string[]', - applyScrubbing: { - key: 'auto', - }, - isInOtel: false, - visibility: 'public', - example: ['{"type":"TOS","subject":"example.com/user/123","description":"User must accept the terms of service"}'], - changelog: [ - { version: 'next', prs: [460], description: 'Added rpc.grpc.error.precondition_failure.violations attribute' }, - ], - }, - 'rpc.grpc.error.quota_failure.violations': { - brief: - 'The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.', - type: 'string[]', - applyScrubbing: { - key: 'auto', - }, - isInOtel: false, - visibility: 'public', - example: [ - '{"subject":"clientip:127.0.0.1","description":"Limit checks failed.","api_service":"example.googleapis.com","quota_metric":"example.googleapis.com/read_requests","quota_id":"ReadRequestsPerMinutePerProject","quota_dimensions":{"region":"us-central1"},"quota_value":1000}', - ], - changelog: [ - { version: 'next', prs: [460], description: 'Added rpc.grpc.error.quota_failure.violations attribute' }, - ], - }, - 'rpc.grpc.error.resource_info.description': { - brief: - 'A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail.', - type: 'string', - applyScrubbing: { - key: 'manual', - }, - isInOtel: false, - visibility: 'public', - example: 'Instance is not ready for the request.', - changelog: [ - { version: 'next', prs: [460], description: 'Added rpc.grpc.error.resource_info.description attribute' }, - ], - }, - 'rpc.grpc.error.resource_info.owner': { - brief: - 'The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.', - type: 'string', - applyScrubbing: { - key: 'auto', - }, - isInOtel: false, - visibility: 'public', - example: 'user@example.com', - changelog: [{ version: 'next', prs: [460], description: 'Added rpc.grpc.error.resource_info.owner attribute' }], - }, - 'rpc.grpc.error.resource_info.resource_name': { - brief: - 'The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.', - type: 'string', - applyScrubbing: { - key: 'auto', - }, - isInOtel: false, - visibility: 'public', - example: 'projects/example/instances/example-instance', - changelog: [ - { version: 'next', prs: [460], description: 'Added rpc.grpc.error.resource_info.resource_name attribute' }, - ], - }, - 'rpc.grpc.error.resource_info.resource_type': { - brief: 'The type of resource being accessed, from a google.rpc.ResourceInfo error detail.', - type: 'string', - applyScrubbing: { - key: 'manual', - }, - isInOtel: false, - visibility: 'public', - example: 'database', - changelog: [ - { version: 'next', prs: [460], description: 'Added rpc.grpc.error.resource_info.resource_type attribute' }, - ], - }, - 'rpc.grpc.error.retry_info.retry_delay_in_ms': { - brief: - 'How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail.', - type: 'integer', - applyScrubbing: { - key: 'manual', - }, - isInOtel: false, - visibility: 'public', - example: 5000, - changelog: [ - { version: 'next', prs: [460], description: 'Added rpc.grpc.error.retry_info.retry_delay_in_ms attribute' }, - ], - }, 'rpc.grpc.status_code': { brief: 'The numeric status code of the gRPC request.', type: 'integer', @@ -25744,6 +25732,19 @@ export type Attributes = { [GRAPHQL_DOCUMENT]?: GRAPHQL_DOCUMENT_TYPE; [GRAPHQL_OPERATION_NAME]?: GRAPHQL_OPERATION_NAME_TYPE; [GRAPHQL_OPERATION_TYPE]?: GRAPHQL_OPERATION_TYPE_TYPE; + [GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS]?: GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS_TYPE; + [GRPC_ERROR_DEBUG_INFO_DETAIL]?: GRPC_ERROR_DEBUG_INFO_DETAIL_TYPE; + [GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES]?: GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES_TYPE; + [GRPC_ERROR_ERROR_INFO_DOMAIN]?: GRPC_ERROR_ERROR_INFO_DOMAIN_TYPE; + [GRPC_ERROR_ERROR_INFO_METADATA_KEY]?: GRPC_ERROR_ERROR_INFO_METADATA_KEY_TYPE; + [GRPC_ERROR_ERROR_INFO_REASON]?: GRPC_ERROR_ERROR_INFO_REASON_TYPE; + [GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS]?: GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS_TYPE; + [GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS]?: GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS_TYPE; + [GRPC_ERROR_RESOURCE_INFO_DESCRIPTION]?: GRPC_ERROR_RESOURCE_INFO_DESCRIPTION_TYPE; + [GRPC_ERROR_RESOURCE_INFO_OWNER]?: GRPC_ERROR_RESOURCE_INFO_OWNER_TYPE; + [GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME]?: GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME_TYPE; + [GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE]?: GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE_TYPE; + [GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS]?: GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS_TYPE; [HARDWARECONCURRENCY]?: HARDWARECONCURRENCY_TYPE; [HTTP_CLIENT_IP]?: HTTP_CLIENT_IP_TYPE; [HTTP_DECODED_RESPONSE_CONTENT_LENGTH]?: HTTP_DECODED_RESPONSE_CONTENT_LENGTH_TYPE; @@ -25923,19 +25924,6 @@ export type Attributes = { [RESOURCE_DEPLOYMENT_ENVIRONMENT_NAME]?: RESOURCE_DEPLOYMENT_ENVIRONMENT_NAME_TYPE; [RESOURCE_RENDER_BLOCKING_STATUS]?: RESOURCE_RENDER_BLOCKING_STATUS_TYPE; [ROUTE]?: ROUTE_TYPE; - [RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS]?: RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS_TYPE; - [RPC_GRPC_ERROR_DEBUG_INFO_DETAIL]?: RPC_GRPC_ERROR_DEBUG_INFO_DETAIL_TYPE; - [RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES]?: RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES_TYPE; - [RPC_GRPC_ERROR_ERROR_INFO_DOMAIN]?: RPC_GRPC_ERROR_ERROR_INFO_DOMAIN_TYPE; - [RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY]?: RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY_TYPE; - [RPC_GRPC_ERROR_ERROR_INFO_REASON]?: RPC_GRPC_ERROR_ERROR_INFO_REASON_TYPE; - [RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS]?: RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS_TYPE; - [RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS]?: RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS_TYPE; - [RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION]?: RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION_TYPE; - [RPC_GRPC_ERROR_RESOURCE_INFO_OWNER]?: RPC_GRPC_ERROR_RESOURCE_INFO_OWNER_TYPE; - [RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME]?: RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME_TYPE; - [RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE]?: RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE_TYPE; - [RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS]?: RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS_TYPE; [RPC_GRPC_STATUS_CODE]?: RPC_GRPC_STATUS_CODE_TYPE; [RPC_METHOD]?: RPC_METHOD_TYPE; [RPC_RESPONSE_STATUS_CODE]?: RPC_RESPONSE_STATUS_CODE_TYPE; diff --git a/model/attributes/rpc/rpc__grpc__error__bad_request__field_violations.json b/model/attributes/grpc/grpc__error__bad_request__field_violations.json similarity index 82% rename from model/attributes/rpc/rpc__grpc__error__bad_request__field_violations.json rename to model/attributes/grpc/grpc__error__bad_request__field_violations.json index 1121d628..0fb8a012 100644 --- a/model/attributes/rpc/rpc__grpc__error__bad_request__field_violations.json +++ b/model/attributes/grpc/grpc__error__bad_request__field_violations.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.bad_request.field_violations", + "key": "grpc.error.bad_request.field_violations", "brief": "The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation.", "type": "string[]", "apply_scrubbing": { @@ -14,7 +14,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.bad_request.field_violations attribute" + "description": "Added grpc.error.bad_request.field_violations attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__debug_info__detail.json b/model/attributes/grpc/grpc__error__debug_info__detail.json similarity index 80% rename from model/attributes/rpc/rpc__grpc__error__debug_info__detail.json rename to model/attributes/grpc/grpc__error__debug_info__detail.json index c36b1555..b5caf18d 100644 --- a/model/attributes/rpc/rpc__grpc__error__debug_info__detail.json +++ b/model/attributes/grpc/grpc__error__debug_info__detail.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.debug_info.detail", + "key": "grpc.error.debug_info.detail", "brief": "Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly.", "type": "string", "apply_scrubbing": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.debug_info.detail attribute" + "description": "Added grpc.error.debug_info.detail attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__debug_info__stack_entries.json b/model/attributes/grpc/grpc__error__debug_info__stack_entries.json similarity index 78% rename from model/attributes/rpc/rpc__grpc__error__debug_info__stack_entries.json rename to model/attributes/grpc/grpc__error__debug_info__stack_entries.json index 0e4fdf0c..3e6b932c 100644 --- a/model/attributes/rpc/rpc__grpc__error__debug_info__stack_entries.json +++ b/model/attributes/grpc/grpc__error__debug_info__stack_entries.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.debug_info.stack_entries", + "key": "grpc.error.debug_info.stack_entries", "brief": "The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", "type": "string[]", "apply_scrubbing": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.debug_info.stack_entries attribute" + "description": "Added grpc.error.debug_info.stack_entries attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__error_info__domain.json b/model/attributes/grpc/grpc__error__error_info__domain.json similarity index 75% rename from model/attributes/rpc/rpc__grpc__error__error_info__domain.json rename to model/attributes/grpc/grpc__error__error_info__domain.json index dd8cbe73..42b912b0 100644 --- a/model/attributes/rpc/rpc__grpc__error__error_info__domain.json +++ b/model/attributes/grpc/grpc__error__error_info__domain.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.error_info.domain", + "key": "grpc.error.error_info.domain", "brief": "The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail.", "type": "string", "apply_scrubbing": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.error_info.domain attribute" + "description": "Added grpc.error.error_info.domain attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__error_info__metadata__[key].json b/model/attributes/grpc/grpc__error__error_info__metadata__[key].json similarity index 68% rename from model/attributes/rpc/rpc__grpc__error__error_info__metadata__[key].json rename to model/attributes/grpc/grpc__error__error_info__metadata__[key].json index ce82bbcb..ab47be77 100644 --- a/model/attributes/rpc/rpc__grpc__error__error_info__metadata__[key].json +++ b/model/attributes/grpc/grpc__error__error_info__metadata__[key].json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.error_info.metadata.", + "key": "grpc.error.error_info.metadata.", "brief": "Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled.", "has_dynamic_suffix": true, "type": "string", @@ -8,12 +8,12 @@ }, "is_in_otel": false, "visibility": "public", - "example": "rpc.grpc.error.error_info.metadata.user_id='123'", + "example": "grpc.error.error_info.metadata.user_id='123'", "changelog": [ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.error_info.metadata. attribute" + "description": "Added grpc.error.error_info.metadata. attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__error_info__reason.json b/model/attributes/grpc/grpc__error__error_info__reason.json similarity index 75% rename from model/attributes/rpc/rpc__grpc__error__error_info__reason.json rename to model/attributes/grpc/grpc__error__error_info__reason.json index 3fdde422..de6e6caf 100644 --- a/model/attributes/rpc/rpc__grpc__error__error_info__reason.json +++ b/model/attributes/grpc/grpc__error__error_info__reason.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.error_info.reason", + "key": "grpc.error.error_info.reason", "brief": "The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail.", "type": "string", "apply_scrubbing": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.error_info.reason attribute" + "description": "Added grpc.error.error_info.reason attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__precondition_failure__violations.json b/model/attributes/grpc/grpc__error__precondition_failure__violations.json similarity index 81% rename from model/attributes/rpc/rpc__grpc__error__precondition_failure__violations.json rename to model/attributes/grpc/grpc__error__precondition_failure__violations.json index 46284683..899beb32 100644 --- a/model/attributes/rpc/rpc__grpc__error__precondition_failure__violations.json +++ b/model/attributes/grpc/grpc__error__precondition_failure__violations.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.precondition_failure.violations", + "key": "grpc.error.precondition_failure.violations", "brief": "The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.", "type": "string[]", "apply_scrubbing": { @@ -14,7 +14,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.precondition_failure.violations attribute" + "description": "Added grpc.error.precondition_failure.violations attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__quota_failure__violations.json b/model/attributes/grpc/grpc__error__quota_failure__violations.json similarity index 88% rename from model/attributes/rpc/rpc__grpc__error__quota_failure__violations.json rename to model/attributes/grpc/grpc__error__quota_failure__violations.json index 3b1fabc8..6e767493 100644 --- a/model/attributes/rpc/rpc__grpc__error__quota_failure__violations.json +++ b/model/attributes/grpc/grpc__error__quota_failure__violations.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.quota_failure.violations", + "key": "grpc.error.quota_failure.violations", "brief": "The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.", "type": "string[]", "apply_scrubbing": { @@ -14,7 +14,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.quota_failure.violations attribute" + "description": "Added grpc.error.quota_failure.violations attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__resource_info__description.json b/model/attributes/grpc/grpc__error__resource_info__description.json similarity index 74% rename from model/attributes/rpc/rpc__grpc__error__resource_info__description.json rename to model/attributes/grpc/grpc__error__resource_info__description.json index fcf23aee..1de30107 100644 --- a/model/attributes/rpc/rpc__grpc__error__resource_info__description.json +++ b/model/attributes/grpc/grpc__error__resource_info__description.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.resource_info.description", + "key": "grpc.error.resource_info.description", "brief": "A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail.", "type": "string", "apply_scrubbing": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.resource_info.description attribute" + "description": "Added grpc.error.resource_info.description attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__resource_info__owner.json b/model/attributes/grpc/grpc__error__resource_info__owner.json similarity index 78% rename from model/attributes/rpc/rpc__grpc__error__resource_info__owner.json rename to model/attributes/grpc/grpc__error__resource_info__owner.json index a29e3277..53db5c76 100644 --- a/model/attributes/rpc/rpc__grpc__error__resource_info__owner.json +++ b/model/attributes/grpc/grpc__error__resource_info__owner.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.resource_info.owner", + "key": "grpc.error.resource_info.owner", "brief": "The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", "type": "string", "apply_scrubbing": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.resource_info.owner attribute" + "description": "Added grpc.error.resource_info.owner attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__resource_info__resource_name.json b/model/attributes/grpc/grpc__error__resource_info__resource_name.json similarity index 75% rename from model/attributes/rpc/rpc__grpc__error__resource_info__resource_name.json rename to model/attributes/grpc/grpc__error__resource_info__resource_name.json index 1d137ac4..39f2a3e7 100644 --- a/model/attributes/rpc/rpc__grpc__error__resource_info__resource_name.json +++ b/model/attributes/grpc/grpc__error__resource_info__resource_name.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.resource_info.resource_name", + "key": "grpc.error.resource_info.resource_name", "brief": "The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", "type": "string", "apply_scrubbing": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.resource_info.resource_name attribute" + "description": "Added grpc.error.resource_info.resource_name attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__resource_info__resource_type.json b/model/attributes/grpc/grpc__error__resource_info__resource_type.json similarity index 70% rename from model/attributes/rpc/rpc__grpc__error__resource_info__resource_type.json rename to model/attributes/grpc/grpc__error__resource_info__resource_type.json index da77e1dc..0956c8f4 100644 --- a/model/attributes/rpc/rpc__grpc__error__resource_info__resource_type.json +++ b/model/attributes/grpc/grpc__error__resource_info__resource_type.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.resource_info.resource_type", + "key": "grpc.error.resource_info.resource_type", "brief": "The type of resource being accessed, from a google.rpc.ResourceInfo error detail.", "type": "string", "apply_scrubbing": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.resource_info.resource_type attribute" + "description": "Added grpc.error.resource_info.resource_type attribute" } ] } diff --git a/model/attributes/rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json b/model/attributes/grpc/grpc__error__retry_info__retry_delay_in_ms.json similarity index 71% rename from model/attributes/rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json rename to model/attributes/grpc/grpc__error__retry_info__retry_delay_in_ms.json index a2cc2272..dcf1a49f 100644 --- a/model/attributes/rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json +++ b/model/attributes/grpc/grpc__error__retry_info__retry_delay_in_ms.json @@ -1,5 +1,5 @@ { - "key": "rpc.grpc.error.retry_info.retry_delay_in_ms", + "key": "grpc.error.retry_info.retry_delay_in_ms", "brief": "How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail.", "type": "integer", "apply_scrubbing": { @@ -12,7 +12,7 @@ { "version": "next", "prs": [460], - "description": "Added rpc.grpc.error.retry_info.retry_delay_in_ms attribute" + "description": "Added grpc.error.retry_info.retry_delay_in_ms attribute" } ] } diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index aae62c51..7d6a5231 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -4233,6 +4233,176 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: "query" """ + # Path: model/attributes/grpc/grpc__error__bad_request__field_violations.json + GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS: Literal[ + "grpc.error.bad_request.field_violations" + ] = "grpc.error.bad_request.field_violations" + """The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation. + + Type: List[str] + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: ["{\"field\":\"email\",\"description\":\"must be a valid email address\",\"reason\":\"FIELD_INVALID\",\"localized_message\":{\"locale\":\"en-US\",\"message\":\"Must be a valid email address\"}}"] + """ + + # Path: model/attributes/grpc/grpc__error__debug_info__detail.json + GRPC_ERROR_DEBUG_INFO_DETAIL: Literal["grpc.error.debug_info.detail"] = ( + "grpc.error.debug_info.detail" + ) + """Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly. + + Type: str + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: "at com.example.Service.method(Service.java:42)" + """ + + # Path: model/attributes/grpc/grpc__error__debug_info__stack_entries.json + GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES: Literal[ + "grpc.error.debug_info.stack_entries" + ] = "grpc.error.debug_info.stack_entries" + """The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. + + Type: List[str] + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: ["com.example.Service.method(Service.java:42)","com.example.Server.handle(Server.java:100)"] + """ + + # Path: model/attributes/grpc/grpc__error__error_info__domain.json + GRPC_ERROR_ERROR_INFO_DOMAIN: Literal["grpc.error.error_info.domain"] = ( + "grpc.error.error_info.domain" + ) + """The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail. + + Type: str + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: "example.sentry.io" + """ + + # Path: model/attributes/grpc/grpc__error__error_info__metadata__[key].json + GRPC_ERROR_ERROR_INFO_METADATA_KEY: Literal[ + "grpc.error.error_info.metadata." + ] = "grpc.error.error_info.metadata." + """Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled. + + Type: str + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Has Dynamic Suffix: true + Example: "grpc.error.error_info.metadata.user_id='123'" + """ + + # Path: model/attributes/grpc/grpc__error__error_info__reason.json + GRPC_ERROR_ERROR_INFO_REASON: Literal["grpc.error.error_info.reason"] = ( + "grpc.error.error_info.reason" + ) + """The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail. + + Type: str + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: "FIELD_INVALID" + """ + + # Path: model/attributes/grpc/grpc__error__precondition_failure__violations.json + GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS: Literal[ + "grpc.error.precondition_failure.violations" + ] = "grpc.error.precondition_failure.violations" + """The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. + + Type: List[str] + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: ["{\"type\":\"TOS\",\"subject\":\"example.com/user/123\",\"description\":\"User must accept the terms of service\"}"] + """ + + # Path: model/attributes/grpc/grpc__error__quota_failure__violations.json + GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS: Literal[ + "grpc.error.quota_failure.violations" + ] = "grpc.error.quota_failure.violations" + """The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. + + Type: List[str] + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: ["{\"subject\":\"clientip:127.0.0.1\",\"description\":\"Limit checks failed.\",\"api_service\":\"example.googleapis.com\",\"quota_metric\":\"example.googleapis.com/read_requests\",\"quota_id\":\"ReadRequestsPerMinutePerProject\",\"quota_dimensions\":{\"region\":\"us-central1\"},\"quota_value\":1000}"] + """ + + # Path: model/attributes/grpc/grpc__error__resource_info__description.json + GRPC_ERROR_RESOURCE_INFO_DESCRIPTION: Literal[ + "grpc.error.resource_info.description" + ] = "grpc.error.resource_info.description" + """A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail. + + Type: str + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: "Instance is not ready for the request." + """ + + # Path: model/attributes/grpc/grpc__error__resource_info__owner.json + GRPC_ERROR_RESOURCE_INFO_OWNER: Literal["grpc.error.resource_info.owner"] = ( + "grpc.error.resource_info.owner" + ) + """The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. + + Type: str + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: "user@example.com" + """ + + # Path: model/attributes/grpc/grpc__error__resource_info__resource_name.json + GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME: Literal[ + "grpc.error.resource_info.resource_name" + ] = "grpc.error.resource_info.resource_name" + """The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. + + Type: str + Apply Scrubbing: auto + Defined in OTEL: No + Visibility: public + Example: "projects/example/instances/example-instance" + """ + + # Path: model/attributes/grpc/grpc__error__resource_info__resource_type.json + GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE: Literal[ + "grpc.error.resource_info.resource_type" + ] = "grpc.error.resource_info.resource_type" + """The type of resource being accessed, from a google.rpc.ResourceInfo error detail. + + Type: str + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: "database" + """ + + # Path: model/attributes/grpc/grpc__error__retry_info__retry_delay_in_ms.json + GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS: Literal[ + "grpc.error.retry_info.retry_delay_in_ms" + ] = "grpc.error.retry_info.retry_delay_in_ms" + """How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail. + + Type: int + Apply Scrubbing: manual + Defined in OTEL: No + Visibility: public + Example: 5000 + """ + # Path: model/attributes/hardwareConcurrency.json HARDWARECONCURRENCY: Literal["hardwareConcurrency"] = "hardwareConcurrency" """The number of logical CPU cores available. @@ -6448,176 +6618,6 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): Example: "App\\Controller::indexAction" """ - # Path: model/attributes/rpc/rpc__grpc__error__bad_request__field_violations.json - RPC_GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS: Literal[ - "rpc.grpc.error.bad_request.field_violations" - ] = "rpc.grpc.error.bad_request.field_violations" - """The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation. - - Type: List[str] - Apply Scrubbing: manual - Defined in OTEL: No - Visibility: public - Example: ["{\"field\":\"email\",\"description\":\"must be a valid email address\",\"reason\":\"FIELD_INVALID\",\"localized_message\":{\"locale\":\"en-US\",\"message\":\"Must be a valid email address\"}}"] - """ - - # Path: model/attributes/rpc/rpc__grpc__error__debug_info__detail.json - RPC_GRPC_ERROR_DEBUG_INFO_DETAIL: Literal["rpc.grpc.error.debug_info.detail"] = ( - "rpc.grpc.error.debug_info.detail" - ) - """Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. - - Type: str - Apply Scrubbing: auto - Defined in OTEL: No - Visibility: public - Example: "at com.example.Service.method(Service.java:42)" - """ - - # Path: model/attributes/rpc/rpc__grpc__error__debug_info__stack_entries.json - RPC_GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES: Literal[ - "rpc.grpc.error.debug_info.stack_entries" - ] = "rpc.grpc.error.debug_info.stack_entries" - """The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. - - Type: List[str] - Apply Scrubbing: auto - Defined in OTEL: No - Visibility: public - Example: ["com.example.Service.method(Service.java:42)","com.example.Server.handle(Server.java:100)"] - """ - - # Path: model/attributes/rpc/rpc__grpc__error__error_info__domain.json - RPC_GRPC_ERROR_ERROR_INFO_DOMAIN: Literal["rpc.grpc.error.error_info.domain"] = ( - "rpc.grpc.error.error_info.domain" - ) - """The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail. - - Type: str - Apply Scrubbing: manual - Defined in OTEL: No - Visibility: public - Example: "example.sentry.io" - """ - - # Path: model/attributes/rpc/rpc__grpc__error__error_info__metadata__[key].json - RPC_GRPC_ERROR_ERROR_INFO_METADATA_KEY: Literal[ - "rpc.grpc.error.error_info.metadata." - ] = "rpc.grpc.error.error_info.metadata." - """Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled. - - Type: str - Apply Scrubbing: auto - Defined in OTEL: No - Visibility: public - Has Dynamic Suffix: true - Example: "rpc.grpc.error.error_info.metadata.user_id='123'" - """ - - # Path: model/attributes/rpc/rpc__grpc__error__error_info__reason.json - RPC_GRPC_ERROR_ERROR_INFO_REASON: Literal["rpc.grpc.error.error_info.reason"] = ( - "rpc.grpc.error.error_info.reason" - ) - """The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail. - - Type: str - Apply Scrubbing: manual - Defined in OTEL: No - Visibility: public - Example: "FIELD_INVALID" - """ - - # Path: model/attributes/rpc/rpc__grpc__error__precondition_failure__violations.json - RPC_GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS: Literal[ - "rpc.grpc.error.precondition_failure.violations" - ] = "rpc.grpc.error.precondition_failure.violations" - """The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. - - Type: List[str] - Apply Scrubbing: auto - Defined in OTEL: No - Visibility: public - Example: ["{\"type\":\"TOS\",\"subject\":\"example.com/user/123\",\"description\":\"User must accept the terms of service\"}"] - """ - - # Path: model/attributes/rpc/rpc__grpc__error__quota_failure__violations.json - RPC_GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS: Literal[ - "rpc.grpc.error.quota_failure.violations" - ] = "rpc.grpc.error.quota_failure.violations" - """The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users. - - Type: List[str] - Apply Scrubbing: auto - Defined in OTEL: No - Visibility: public - Example: ["{\"subject\":\"clientip:127.0.0.1\",\"description\":\"Limit checks failed.\",\"api_service\":\"example.googleapis.com\",\"quota_metric\":\"example.googleapis.com/read_requests\",\"quota_id\":\"ReadRequestsPerMinutePerProject\",\"quota_dimensions\":{\"region\":\"us-central1\"},\"quota_value\":1000}"] - """ - - # Path: model/attributes/rpc/rpc__grpc__error__resource_info__description.json - RPC_GRPC_ERROR_RESOURCE_INFO_DESCRIPTION: Literal[ - "rpc.grpc.error.resource_info.description" - ] = "rpc.grpc.error.resource_info.description" - """A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail. - - Type: str - Apply Scrubbing: manual - Defined in OTEL: No - Visibility: public - Example: "Instance is not ready for the request." - """ - - # Path: model/attributes/rpc/rpc__grpc__error__resource_info__owner.json - RPC_GRPC_ERROR_RESOURCE_INFO_OWNER: Literal[ - "rpc.grpc.error.resource_info.owner" - ] = "rpc.grpc.error.resource_info.owner" - """The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. - - Type: str - Apply Scrubbing: auto - Defined in OTEL: No - Visibility: public - Example: "user@example.com" - """ - - # Path: model/attributes/rpc/rpc__grpc__error__resource_info__resource_name.json - RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME: Literal[ - "rpc.grpc.error.resource_info.resource_name" - ] = "rpc.grpc.error.resource_info.resource_name" - """The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled. - - Type: str - Apply Scrubbing: auto - Defined in OTEL: No - Visibility: public - Example: "projects/example/instances/example-instance" - """ - - # Path: model/attributes/rpc/rpc__grpc__error__resource_info__resource_type.json - RPC_GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE: Literal[ - "rpc.grpc.error.resource_info.resource_type" - ] = "rpc.grpc.error.resource_info.resource_type" - """The type of resource being accessed, from a google.rpc.ResourceInfo error detail. - - Type: str - Apply Scrubbing: manual - Defined in OTEL: No - Visibility: public - Example: "database" - """ - - # Path: model/attributes/rpc/rpc__grpc__error__retry_info__retry_delay_in_ms.json - RPC_GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS: Literal[ - "rpc.grpc.error.retry_info.retry_delay_in_ms" - ] = "rpc.grpc.error.retry_info.retry_delay_in_ms" - """How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail. - - Type: int - Apply Scrubbing: manual - Defined in OTEL: No - Visibility: public - Example: 5000 - """ - # Path: model/attributes/rpc/rpc__grpc__status_code.json RPC_GRPC_STATUS_CODE: Literal["rpc.grpc.status_code"] = "rpc.grpc.status_code" """The numeric status code of the gRPC request. @@ -13369,23 +13369,228 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ChangelogEntry(version="0.0.0"), ], ), - "hardwareConcurrency": AttributeMetadata( - brief="The number of logical CPU cores available.", - type=AttributeType.STRING, + "grpc.error.bad_request.field_violations": AttributeMetadata( + brief="The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation.", + type=AttributeType.STRING_ARRAY, apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), is_in_otel=False, visibility=Visibility.PUBLIC, - example="14", - deprecation=DeprecationInfo( - replacement="device.processor_count", - reason="Old namespace-less attribute, to be replaced with device.processor_count for span-first future", - status=DeprecationStatus.BACKFILL, - ), - aliases=["device.processor_count"], + example=[ + '{"field":"email","description":"must be a valid email address","reason":"FIELD_INVALID","localized_message":{"locale":"en-US","message":"Must be a valid email address"}}' + ], changelog=[ ChangelogEntry( - version="0.5.0", - prs=[281, 300], + version="next", + prs=[460], + description="Added grpc.error.bad_request.field_violations attribute", + ), + ], + ), + "grpc.error.debug_info.detail": AttributeMetadata( + brief="Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="at com.example.Service.method(Service.java:42)", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.debug_info.detail attribute", + ), + ], + ), + "grpc.error.debug_info.stack_entries": AttributeMetadata( + brief="The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + type=AttributeType.STRING_ARRAY, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example=[ + "com.example.Service.method(Service.java:42)", + "com.example.Server.handle(Server.java:100)", + ], + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.debug_info.stack_entries attribute", + ), + ], + ), + "grpc.error.error_info.domain": AttributeMetadata( + brief="The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="example.sentry.io", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.error_info.domain attribute", + ), + ], + ), + "grpc.error.error_info.metadata.": AttributeMetadata( + brief="Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + has_dynamic_suffix=True, + example="grpc.error.error_info.metadata.user_id='123'", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.error_info.metadata. attribute", + ), + ], + ), + "grpc.error.error_info.reason": AttributeMetadata( + brief="The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="FIELD_INVALID", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.error_info.reason attribute", + ), + ], + ), + "grpc.error.precondition_failure.violations": AttributeMetadata( + brief="The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.", + type=AttributeType.STRING_ARRAY, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example=[ + '{"type":"TOS","subject":"example.com/user/123","description":"User must accept the terms of service"}' + ], + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.precondition_failure.violations attribute", + ), + ], + ), + "grpc.error.quota_failure.violations": AttributeMetadata( + brief="The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.", + type=AttributeType.STRING_ARRAY, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example=[ + '{"subject":"clientip:127.0.0.1","description":"Limit checks failed.","api_service":"example.googleapis.com","quota_metric":"example.googleapis.com/read_requests","quota_id":"ReadRequestsPerMinutePerProject","quota_dimensions":{"region":"us-central1"},"quota_value":1000}' + ], + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.quota_failure.violations attribute", + ), + ], + ), + "grpc.error.resource_info.description": AttributeMetadata( + brief="A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="Instance is not ready for the request.", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.resource_info.description attribute", + ), + ], + ), + "grpc.error.resource_info.owner": AttributeMetadata( + brief="The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="user@example.com", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.resource_info.owner attribute", + ), + ], + ), + "grpc.error.resource_info.resource_name": AttributeMetadata( + brief="The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="projects/example/instances/example-instance", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.resource_info.resource_name attribute", + ), + ], + ), + "grpc.error.resource_info.resource_type": AttributeMetadata( + brief="The type of resource being accessed, from a google.rpc.ResourceInfo error detail.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="database", + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.resource_info.resource_type attribute", + ), + ], + ), + "grpc.error.retry_info.retry_delay_in_ms": AttributeMetadata( + brief="How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail.", + type=AttributeType.INTEGER, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example=5000, + changelog=[ + ChangelogEntry( + version="next", + prs=[460], + description="Added grpc.error.retry_info.retry_delay_in_ms attribute", + ), + ], + ), + "hardwareConcurrency": AttributeMetadata( + brief="The number of logical CPU cores available.", + type=AttributeType.STRING, + apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), + is_in_otel=False, + visibility=Visibility.PUBLIC, + example="14", + deprecation=DeprecationInfo( + replacement="device.processor_count", + reason="Old namespace-less attribute, to be replaced with device.processor_count for span-first future", + status=DeprecationStatus.BACKFILL, + ), + aliases=["device.processor_count"], + changelog=[ + ChangelogEntry( + version="0.5.0", + prs=[281, 300], description="Added and deprecated attribute to document JS SDK's current behaviour", ), ], @@ -15887,211 +16092,6 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ChangelogEntry(version="0.0.0"), ], ), - "rpc.grpc.error.bad_request.field_violations": AttributeMetadata( - brief="The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation.", - type=AttributeType.STRING_ARRAY, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example=[ - '{"field":"email","description":"must be a valid email address","reason":"FIELD_INVALID","localized_message":{"locale":"en-US","message":"Must be a valid email address"}}' - ], - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.bad_request.field_violations attribute", - ), - ], - ), - "rpc.grpc.error.debug_info.detail": AttributeMetadata( - brief="Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", - type=AttributeType.STRING, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example="at com.example.Service.method(Service.java:42)", - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.debug_info.detail attribute", - ), - ], - ), - "rpc.grpc.error.debug_info.stack_entries": AttributeMetadata( - brief="The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", - type=AttributeType.STRING_ARRAY, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example=[ - "com.example.Service.method(Service.java:42)", - "com.example.Server.handle(Server.java:100)", - ], - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.debug_info.stack_entries attribute", - ), - ], - ), - "rpc.grpc.error.error_info.domain": AttributeMetadata( - brief="The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail.", - type=AttributeType.STRING, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example="example.sentry.io", - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.error_info.domain attribute", - ), - ], - ), - "rpc.grpc.error.error_info.metadata.": AttributeMetadata( - brief="Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled.", - type=AttributeType.STRING, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), - is_in_otel=False, - visibility=Visibility.PUBLIC, - has_dynamic_suffix=True, - example="rpc.grpc.error.error_info.metadata.user_id='123'", - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.error_info.metadata. attribute", - ), - ], - ), - "rpc.grpc.error.error_info.reason": AttributeMetadata( - brief="The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail.", - type=AttributeType.STRING, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example="FIELD_INVALID", - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.error_info.reason attribute", - ), - ], - ), - "rpc.grpc.error.precondition_failure.violations": AttributeMetadata( - brief="The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.", - type=AttributeType.STRING_ARRAY, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example=[ - '{"type":"TOS","subject":"example.com/user/123","description":"User must accept the terms of service"}' - ], - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.precondition_failure.violations attribute", - ), - ], - ), - "rpc.grpc.error.quota_failure.violations": AttributeMetadata( - brief="The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled, since violation subjects may identify specific resources or users.", - type=AttributeType.STRING_ARRAY, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example=[ - '{"subject":"clientip:127.0.0.1","description":"Limit checks failed.","api_service":"example.googleapis.com","quota_metric":"example.googleapis.com/read_requests","quota_id":"ReadRequestsPerMinutePerProject","quota_dimensions":{"region":"us-central1"},"quota_value":1000}' - ], - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.quota_failure.violations attribute", - ), - ], - ), - "rpc.grpc.error.resource_info.description": AttributeMetadata( - brief="A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail.", - type=AttributeType.STRING, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example="Instance is not ready for the request.", - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.resource_info.description attribute", - ), - ], - ), - "rpc.grpc.error.resource_info.owner": AttributeMetadata( - brief="The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", - type=AttributeType.STRING, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example="user@example.com", - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.resource_info.owner attribute", - ), - ], - ), - "rpc.grpc.error.resource_info.resource_name": AttributeMetadata( - brief="The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled.", - type=AttributeType.STRING, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example="projects/example/instances/example-instance", - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.resource_info.resource_name attribute", - ), - ], - ), - "rpc.grpc.error.resource_info.resource_type": AttributeMetadata( - brief="The type of resource being accessed, from a google.rpc.ResourceInfo error detail.", - type=AttributeType.STRING, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example="database", - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.resource_info.resource_type attribute", - ), - ], - ), - "rpc.grpc.error.retry_info.retry_delay_in_ms": AttributeMetadata( - brief="How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail.", - type=AttributeType.INTEGER, - apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.MANUAL), - is_in_otel=False, - visibility=Visibility.PUBLIC, - example=5000, - changelog=[ - ChangelogEntry( - version="next", - prs=[460], - description="Added rpc.grpc.error.retry_info.retry_delay_in_ms attribute", - ), - ], - ), "rpc.grpc.status_code": AttributeMetadata( brief="The numeric status code of the gRPC request.", type=AttributeType.INTEGER, @@ -18582,6 +18582,19 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "graphql.document": str, "graphql.operation.name": str, "graphql.operation.type": str, + "grpc.error.bad_request.field_violations": List[str], + "grpc.error.debug_info.detail": str, + "grpc.error.debug_info.stack_entries": List[str], + "grpc.error.error_info.domain": str, + "grpc.error.error_info.metadata.": str, + "grpc.error.error_info.reason": str, + "grpc.error.precondition_failure.violations": List[str], + "grpc.error.quota_failure.violations": List[str], + "grpc.error.resource_info.description": str, + "grpc.error.resource_info.owner": str, + "grpc.error.resource_info.resource_name": str, + "grpc.error.resource_info.resource_type": str, + "grpc.error.retry_info.retry_delay_in_ms": int, "hardwareConcurrency": str, "http.client_ip": str, "http.decoded_response_content_length": int, @@ -18761,19 +18774,6 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "resource.deployment.environment.name": str, "resource.render_blocking_status": str, "route": str, - "rpc.grpc.error.bad_request.field_violations": List[str], - "rpc.grpc.error.debug_info.detail": str, - "rpc.grpc.error.debug_info.stack_entries": List[str], - "rpc.grpc.error.error_info.domain": str, - "rpc.grpc.error.error_info.metadata.": str, - "rpc.grpc.error.error_info.reason": str, - "rpc.grpc.error.precondition_failure.violations": List[str], - "rpc.grpc.error.quota_failure.violations": List[str], - "rpc.grpc.error.resource_info.description": str, - "rpc.grpc.error.resource_info.owner": str, - "rpc.grpc.error.resource_info.resource_name": str, - "rpc.grpc.error.resource_info.resource_type": str, - "rpc.grpc.error.retry_info.retry_delay_in_ms": int, "rpc.grpc.status_code": int, "rpc.method": str, "rpc.response.status_code": str,