From 9e914bb86df076ea62784da815a8535840a3ae8c Mon Sep 17 00:00:00 2001 From: lucas Date: Wed, 1 Jul 2026 22:10:59 -0300 Subject: [PATCH 1/4] 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/4] 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/4] 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, From d86e8ca0634be66b44b750e9cf6bee2b18e629c4 Mon Sep 17 00:00:00 2001 From: lucas Date: Mon, 6 Jul 2026 22:48:20 -0300 Subject: [PATCH 4/4] fix(attributes): address PR review comments on grpc error attributes Rename retry_delay_in_ms to retry_delay_ms per OTel naming guidance, and mention dataCollection alongside sendDefaultPii on all PII-gated grpc error attributes, not just debug_info.detail. Co-Authored-By: Claude Sonnet 5 --- .../sentry-conventions/src/attributes.ts | 48 +++++++++---------- ...rpc__error__debug_info__stack_entries.json | 2 +- ...c__error__error_info__metadata__[key].json | 2 +- ...ror__precondition_failure__violations.json | 2 +- ...rpc__error__quota_failure__violations.json | 2 +- .../grpc__error__resource_info__owner.json | 2 +- ...__error__resource_info__resource_name.json | 2 +- ...c__error__retry_info__retry_delay_ms.json} | 4 +- python/src/sentry_conventions/attributes.py | 38 +++++++-------- 9 files changed, 50 insertions(+), 52 deletions(-) rename model/attributes/grpc/{grpc__error__retry_info__retry_delay_in_ms.json => grpc__error__retry_info__retry_delay_ms.json} (73%) diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 50a1c14e..dff0c938 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -7149,7 +7149,7 @@ 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` + * The server-side stack trace entries 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.stack_entries` * * Attribute Value Type: `Array` {@link GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES_TYPE} * @@ -7191,7 +7191,7 @@ 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.` + * 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 or dataCollection is configured accordingly. `grpc.error.error_info.metadata.` * * Attribute Value Type: `string` {@link GRPC_ERROR_ERROR_INFO_METADATA_KEY_TYPE} * @@ -7235,7 +7235,7 @@ 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` + * 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 or dataCollection is configured accordingly, 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} * @@ -7256,7 +7256,7 @@ 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` + * 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 or dataCollection is configured accordingly, 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} * @@ -7298,7 +7298,7 @@ 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` + * 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 or dataCollection is configured accordingly. `grpc.error.resource_info.owner` * * Attribute Value Type: `string` {@link GRPC_ERROR_RESOURCE_INFO_OWNER_TYPE} * @@ -7319,7 +7319,7 @@ 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` + * The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly. `grpc.error.resource_info.resource_name` * * Attribute Value Type: `string` {@link GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME_TYPE} * @@ -7358,12 +7358,12 @@ export const GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE = 'grpc.error.resource_info. */ export type GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE_TYPE = string; -// Path: model/attributes/grpc/grpc__error__retry_info__retry_delay_in_ms.json +// Path: model/attributes/grpc/grpc__error__retry_info__retry_delay_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` + * 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_ms` * - * Attribute Value Type: `number` {@link GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS_TYPE} + * Attribute Value Type: `number` {@link GRPC_ERROR_RETRY_INFO_RETRY_DELAY_MS_TYPE} * * Apply Scrubbing: manual * @@ -7372,12 +7372,12 @@ export type GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE_TYPE = string; * * @example 5000 */ -export const GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS = 'grpc.error.retry_info.retry_delay_in_ms'; +export const GRPC_ERROR_RETRY_INFO_RETRY_DELAY_MS = 'grpc.error.retry_info.retry_delay_ms'; /** - * Type for {@link 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_MS} grpc.error.retry_info.retry_delay_ms */ -export type GRPC_ERROR_RETRY_INFO_RETRY_DELAY_IN_MS_TYPE = number; +export type GRPC_ERROR_RETRY_INFO_RETRY_DELAY_MS_TYPE = number; // Path: model/attributes/hardwareConcurrency.json @@ -15452,7 +15452,7 @@ export const ATTRIBUTE_TYPE: Record = { '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', + 'grpc.error.retry_info.retry_delay_ms': 'integer', hardwareConcurrency: 'string', 'http.client_ip': 'string', 'http.decoded_response_content_length': 'integer', @@ -16140,7 +16140,7 @@ export type AttributeName = | 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 GRPC_ERROR_RETRY_INFO_RETRY_DELAY_MS | typeof HARDWARECONCURRENCY | typeof HTTP_CLIENT_IP | typeof HTTP_DECODED_RESPONSE_CONTENT_LENGTH @@ -20931,7 +20931,7 @@ export const ATTRIBUTE_METADATA: Record = { }, '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.', + 'The server-side stack trace entries 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', @@ -20954,7 +20954,7 @@ export const ATTRIBUTE_METADATA: Record = { }, '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.', + '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 or dataCollection is configured accordingly.', type: 'string', applyScrubbing: { key: 'auto', @@ -20979,7 +20979,7 @@ export const ATTRIBUTE_METADATA: Record = { }, '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.', + '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 or dataCollection is configured accordingly, since violation subjects may identify specific resources or users.', type: 'string[]', applyScrubbing: { key: 'auto', @@ -20993,7 +20993,7 @@ export const ATTRIBUTE_METADATA: Record = { }, '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.', + '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 or dataCollection is configured accordingly, since violation subjects may identify specific resources or users.', type: 'string[]', applyScrubbing: { key: 'auto', @@ -21019,7 +21019,7 @@ export const ATTRIBUTE_METADATA: Record = { }, '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.', + '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 or dataCollection is configured accordingly.', type: 'string', applyScrubbing: { key: 'auto', @@ -21031,7 +21031,7 @@ export const ATTRIBUTE_METADATA: Record = { }, '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.', + 'The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly.', type: 'string', applyScrubbing: { key: 'auto', @@ -21052,7 +21052,7 @@ export const ATTRIBUTE_METADATA: Record = { example: 'database', changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.resource_info.resource_type attribute' }], }, - 'grpc.error.retry_info.retry_delay_in_ms': { + 'grpc.error.retry_info.retry_delay_ms': { brief: 'How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail.', type: 'integer', @@ -21062,9 +21062,7 @@ export const ATTRIBUTE_METADATA: Record = { isInOtel: false, visibility: 'public', example: 5000, - changelog: [ - { version: 'next', prs: [460], description: 'Added grpc.error.retry_info.retry_delay_in_ms attribute' }, - ], + changelog: [{ version: 'next', prs: [460], description: 'Added grpc.error.retry_info.retry_delay_ms attribute' }], }, hardwareConcurrency: { brief: 'The number of logical CPU cores available.', @@ -25900,7 +25898,7 @@ export type Attributes = { [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; + [GRPC_ERROR_RETRY_INFO_RETRY_DELAY_MS]?: GRPC_ERROR_RETRY_INFO_RETRY_DELAY_MS_TYPE; [HARDWARECONCURRENCY]?: HARDWARECONCURRENCY_TYPE; [HTTP_CLIENT_IP]?: HTTP_CLIENT_IP_TYPE; [HTTP_DECODED_RESPONSE_CONTENT_LENGTH]?: HTTP_DECODED_RESPONSE_CONTENT_LENGTH_TYPE; diff --git a/model/attributes/grpc/grpc__error__debug_info__stack_entries.json b/model/attributes/grpc/grpc__error__debug_info__stack_entries.json index 3e6b932c..c3f68efc 100644 --- a/model/attributes/grpc/grpc__error__debug_info__stack_entries.json +++ b/model/attributes/grpc/grpc__error__debug_info__stack_entries.json @@ -1,6 +1,6 @@ { "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.", + "brief": "The server-side stack trace entries 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" diff --git a/model/attributes/grpc/grpc__error__error_info__metadata__[key].json b/model/attributes/grpc/grpc__error__error_info__metadata__[key].json index ab47be77..0546c14a 100644 --- a/model/attributes/grpc/grpc__error__error_info__metadata__[key].json +++ b/model/attributes/grpc/grpc__error__error_info__metadata__[key].json @@ -1,6 +1,6 @@ { "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.", + "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 or dataCollection is configured accordingly.", "has_dynamic_suffix": true, "type": "string", "apply_scrubbing": { diff --git a/model/attributes/grpc/grpc__error__precondition_failure__violations.json b/model/attributes/grpc/grpc__error__precondition_failure__violations.json index 899beb32..4dd544e6 100644 --- a/model/attributes/grpc/grpc__error__precondition_failure__violations.json +++ b/model/attributes/grpc/grpc__error__precondition_failure__violations.json @@ -1,6 +1,6 @@ { "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.", + "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 or dataCollection is configured accordingly, since violation subjects may identify specific resources or users.", "type": "string[]", "apply_scrubbing": { "key": "auto" diff --git a/model/attributes/grpc/grpc__error__quota_failure__violations.json b/model/attributes/grpc/grpc__error__quota_failure__violations.json index 6e767493..dd293388 100644 --- a/model/attributes/grpc/grpc__error__quota_failure__violations.json +++ b/model/attributes/grpc/grpc__error__quota_failure__violations.json @@ -1,6 +1,6 @@ { "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.", + "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 or dataCollection is configured accordingly, since violation subjects may identify specific resources or users.", "type": "string[]", "apply_scrubbing": { "key": "auto" diff --git a/model/attributes/grpc/grpc__error__resource_info__owner.json b/model/attributes/grpc/grpc__error__resource_info__owner.json index 53db5c76..a1dabf0c 100644 --- a/model/attributes/grpc/grpc__error__resource_info__owner.json +++ b/model/attributes/grpc/grpc__error__resource_info__owner.json @@ -1,6 +1,6 @@ { "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.", + "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 or dataCollection is configured accordingly.", "type": "string", "apply_scrubbing": { "key": "auto" diff --git a/model/attributes/grpc/grpc__error__resource_info__resource_name.json b/model/attributes/grpc/grpc__error__resource_info__resource_name.json index 39f2a3e7..f338ed2a 100644 --- a/model/attributes/grpc/grpc__error__resource_info__resource_name.json +++ b/model/attributes/grpc/grpc__error__resource_info__resource_name.json @@ -1,6 +1,6 @@ { "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.", + "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 or dataCollection is configured accordingly.", "type": "string", "apply_scrubbing": { "key": "auto" diff --git a/model/attributes/grpc/grpc__error__retry_info__retry_delay_in_ms.json b/model/attributes/grpc/grpc__error__retry_info__retry_delay_ms.json similarity index 73% rename from model/attributes/grpc/grpc__error__retry_info__retry_delay_in_ms.json rename to model/attributes/grpc/grpc__error__retry_info__retry_delay_ms.json index dcf1a49f..1c63d804 100644 --- a/model/attributes/grpc/grpc__error__retry_info__retry_delay_in_ms.json +++ b/model/attributes/grpc/grpc__error__retry_info__retry_delay_ms.json @@ -1,5 +1,5 @@ { - "key": "grpc.error.retry_info.retry_delay_in_ms", + "key": "grpc.error.retry_info.retry_delay_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 grpc.error.retry_info.retry_delay_in_ms attribute" + "description": "Added grpc.error.retry_info.retry_delay_ms attribute" } ] } diff --git a/python/src/sentry_conventions/attributes.py b/python/src/sentry_conventions/attributes.py index a1e1d226..6215130c 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -4315,7 +4315,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): 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. + """The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly. Type: List[str] Apply Scrubbing: auto @@ -4341,7 +4341,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): 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. + """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 or dataCollection is configured accordingly. Type: str Apply Scrubbing: auto @@ -4368,7 +4368,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): 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. + """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 or dataCollection is configured accordingly, since violation subjects may identify specific resources or users. Type: List[str] Apply Scrubbing: auto @@ -4381,7 +4381,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): 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. + """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 or dataCollection is configured accordingly, since violation subjects may identify specific resources or users. Type: List[str] Apply Scrubbing: auto @@ -4407,7 +4407,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): 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. + """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 or dataCollection is configured accordingly. Type: str Apply Scrubbing: auto @@ -4420,7 +4420,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): 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. + """The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly. Type: str Apply Scrubbing: auto @@ -4442,10 +4442,10 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): 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" + # Path: model/attributes/grpc/grpc__error__retry_info__retry_delay_ms.json + GRPC_ERROR_RETRY_INFO_RETRY_DELAY_MS: Literal[ + "grpc.error.retry_info.retry_delay_ms" + ] = "grpc.error.retry_info.retry_delay_ms" """How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail. Type: int @@ -13526,7 +13526,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ], ), "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.", + brief="The server-side stack trace entries 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_ARRAY, apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), is_in_otel=False, @@ -13559,7 +13559,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ], ), "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.", + 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 or dataCollection is configured accordingly.", type=AttributeType.STRING, apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), is_in_otel=False, @@ -13590,7 +13590,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ], ), "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.", + 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 or dataCollection is configured accordingly, since violation subjects may identify specific resources or users.", type=AttributeType.STRING_ARRAY, apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), is_in_otel=False, @@ -13607,7 +13607,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ], ), "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.", + 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 or dataCollection is configured accordingly, since violation subjects may identify specific resources or users.", type=AttributeType.STRING_ARRAY, apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), is_in_otel=False, @@ -13639,7 +13639,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ], ), "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.", + 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 or dataCollection is configured accordingly.", type=AttributeType.STRING, apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), is_in_otel=False, @@ -13654,7 +13654,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ], ), "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.", + 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 or dataCollection is configured accordingly.", type=AttributeType.STRING, apply_scrubbing=ApplyScrubbingInfo(key=ApplyScrubbing.AUTO), is_in_otel=False, @@ -13683,7 +13683,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ), ], ), - "grpc.error.retry_info.retry_delay_in_ms": AttributeMetadata( + "grpc.error.retry_info.retry_delay_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), @@ -13694,7 +13694,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ChangelogEntry( version="next", prs=[460], - description="Added grpc.error.retry_info.retry_delay_in_ms attribute", + description="Added grpc.error.retry_info.retry_delay_ms attribute", ), ], ), @@ -18722,7 +18722,7 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): "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, + "grpc.error.retry_info.retry_delay_ms": int, "hardwareConcurrency": str, "http.client_ip": str, "http.decoded_response_content_length": int,