diff --git a/javascript/sentry-conventions/src/attributes.ts b/javascript/sentry-conventions/src/attributes.ts index 76a56953..37a0cfb8 100644 --- a/javascript/sentry-conventions/src/attributes.ts +++ b/javascript/sentry-conventions/src/attributes.ts @@ -7176,6 +7176,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 or dataCollection is configured accordingly. `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 or dataCollection is configured accordingly. `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 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} + * + * 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 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} + * + * 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 or dataCollection is configured accordingly. `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 or dataCollection is configured accordingly. `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_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_ms` + * + * Attribute Value Type: `number` {@link GRPC_ERROR_RETRY_INFO_RETRY_DELAY_MS_TYPE} + * + * Apply Scrubbing: manual + * + * Attribute defined in OTEL: No + * Visibility: public + * + * @example 5000 + */ +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_MS} grpc.error.retry_info.retry_delay_ms + */ +export type GRPC_ERROR_RETRY_INFO_RETRY_DELAY_MS_TYPE = number; + // Path: model/attributes/hardwareConcurrency.json /** @@ -15411,6 +15686,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_ms': 'integer', hardwareConcurrency: 'string', 'http.client_ip': 'string', 'http.decoded_response_content_length': 'integer', @@ -16093,6 +16381,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_MS | typeof HARDWARECONCURRENCY | typeof HTTP_CLIENT_IP | typeof HTTP_DECODED_RESPONSE_CONTENT_LENGTH @@ -20908,6 +21209,169 @@ export const ATTRIBUTE_METADATA: Record = { example: 'query', changelog: [{ version: '0.1.0', prs: [127] }, { version: '0.0.0' }], }, + '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 grpc.error.bad_request.field_violations attribute' }, + ], + }, + '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', + applyScrubbing: { + key: 'auto', + }, + isInOtel: false, + visibility: 'public', + 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 or dataCollection is configured accordingly.', + 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 or dataCollection is configured accordingly.', + 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 or dataCollection is configured accordingly, 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 or dataCollection is configured accordingly, 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 or dataCollection is configured accordingly.', + 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 or dataCollection is configured accordingly.', + 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_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_ms attribute' }], + }, hardwareConcurrency: { brief: 'The number of logical CPU cores available.', type: 'string', @@ -25803,6 +26267,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_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__bad_request__field_violations.json b/model/attributes/grpc/grpc__error__bad_request__field_violations.json new file mode 100644 index 00000000..0fb8a012 --- /dev/null +++ b/model/attributes/grpc/grpc__error__bad_request__field_violations.json @@ -0,0 +1,20 @@ +{ + "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": { + "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 grpc.error.bad_request.field_violations attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__debug_info__detail.json b/model/attributes/grpc/grpc__error__debug_info__detail.json new file mode 100644 index 00000000..b5caf18d --- /dev/null +++ b/model/attributes/grpc/grpc__error__debug_info__detail.json @@ -0,0 +1,18 @@ +{ + "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": { + "key": "auto" + }, + "is_in_otel": false, + "visibility": "public", + "example": "at com.example.Service.method(Service.java:42)", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added grpc.error.debug_info.detail attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__debug_info__stack_entries.json b/model/attributes/grpc/grpc__error__debug_info__stack_entries.json new file mode 100644 index 00000000..c3f68efc --- /dev/null +++ b/model/attributes/grpc/grpc__error__debug_info__stack_entries.json @@ -0,0 +1,18 @@ +{ + "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 or dataCollection is configured accordingly.", + "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 grpc.error.debug_info.stack_entries attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__error_info__domain.json b/model/attributes/grpc/grpc__error__error_info__domain.json new file mode 100644 index 00000000..42b912b0 --- /dev/null +++ b/model/attributes/grpc/grpc__error__error_info__domain.json @@ -0,0 +1,18 @@ +{ + "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": { + "key": "manual" + }, + "is_in_otel": false, + "visibility": "public", + "example": "example.sentry.io", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added grpc.error.error_info.domain attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__error_info__metadata__[key].json b/model/attributes/grpc/grpc__error__error_info__metadata__[key].json new file mode 100644 index 00000000..0546c14a --- /dev/null +++ b/model/attributes/grpc/grpc__error__error_info__metadata__[key].json @@ -0,0 +1,19 @@ +{ + "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 or dataCollection is configured accordingly.", + "has_dynamic_suffix": true, + "type": "string", + "apply_scrubbing": { + "key": "auto" + }, + "is_in_otel": false, + "visibility": "public", + "example": "grpc.error.error_info.metadata.user_id='123'", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added grpc.error.error_info.metadata. attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__error_info__reason.json b/model/attributes/grpc/grpc__error__error_info__reason.json new file mode 100644 index 00000000..de6e6caf --- /dev/null +++ b/model/attributes/grpc/grpc__error__error_info__reason.json @@ -0,0 +1,18 @@ +{ + "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": { + "key": "manual" + }, + "is_in_otel": false, + "visibility": "public", + "example": "FIELD_INVALID", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added grpc.error.error_info.reason attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__precondition_failure__violations.json b/model/attributes/grpc/grpc__error__precondition_failure__violations.json new file mode 100644 index 00000000..4dd544e6 --- /dev/null +++ b/model/attributes/grpc/grpc__error__precondition_failure__violations.json @@ -0,0 +1,20 @@ +{ + "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 or dataCollection is configured accordingly, 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 grpc.error.precondition_failure.violations attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__quota_failure__violations.json b/model/attributes/grpc/grpc__error__quota_failure__violations.json new file mode 100644 index 00000000..dd293388 --- /dev/null +++ b/model/attributes/grpc/grpc__error__quota_failure__violations.json @@ -0,0 +1,20 @@ +{ + "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 or dataCollection is configured accordingly, 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 grpc.error.quota_failure.violations attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__resource_info__description.json b/model/attributes/grpc/grpc__error__resource_info__description.json new file mode 100644 index 00000000..1de30107 --- /dev/null +++ b/model/attributes/grpc/grpc__error__resource_info__description.json @@ -0,0 +1,18 @@ +{ + "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": { + "key": "manual" + }, + "is_in_otel": false, + "visibility": "public", + "example": "Instance is not ready for the request.", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added grpc.error.resource_info.description attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__resource_info__owner.json b/model/attributes/grpc/grpc__error__resource_info__owner.json new file mode 100644 index 00000000..a1dabf0c --- /dev/null +++ b/model/attributes/grpc/grpc__error__resource_info__owner.json @@ -0,0 +1,18 @@ +{ + "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 or dataCollection is configured accordingly.", + "type": "string", + "apply_scrubbing": { + "key": "auto" + }, + "is_in_otel": false, + "visibility": "public", + "example": "user@example.com", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added grpc.error.resource_info.owner attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__resource_info__resource_name.json b/model/attributes/grpc/grpc__error__resource_info__resource_name.json new file mode 100644 index 00000000..f338ed2a --- /dev/null +++ b/model/attributes/grpc/grpc__error__resource_info__resource_name.json @@ -0,0 +1,18 @@ +{ + "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 or dataCollection is configured accordingly.", + "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 grpc.error.resource_info.resource_name attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__resource_info__resource_type.json b/model/attributes/grpc/grpc__error__resource_info__resource_type.json new file mode 100644 index 00000000..0956c8f4 --- /dev/null +++ b/model/attributes/grpc/grpc__error__resource_info__resource_type.json @@ -0,0 +1,18 @@ +{ + "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": { + "key": "manual" + }, + "is_in_otel": false, + "visibility": "public", + "example": "database", + "changelog": [ + { + "version": "next", + "prs": [460], + "description": "Added grpc.error.resource_info.resource_type attribute" + } + ] +} diff --git a/model/attributes/grpc/grpc__error__retry_info__retry_delay_ms.json b/model/attributes/grpc/grpc__error__retry_info__retry_delay_ms.json new file mode 100644 index 00000000..1c63d804 --- /dev/null +++ b/model/attributes/grpc/grpc__error__retry_info__retry_delay_ms.json @@ -0,0 +1,18 @@ +{ + "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": { + "key": "manual" + }, + "is_in_otel": false, + "visibility": "public", + "example": 5000, + "changelog": [ + { + "version": "next", + "prs": [460], + "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 90122d51..9fa132b3 100644 --- a/python/src/sentry_conventions/attributes.py +++ b/python/src/sentry_conventions/attributes.py @@ -4315,6 +4315,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 or dataCollection is configured accordingly. + + 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 or dataCollection is configured accordingly. + + 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 or dataCollection is configured accordingly, 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 or dataCollection is configured accordingly, 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 or dataCollection is configured accordingly. + + 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 or dataCollection is configured accordingly. + + 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_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 + 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. @@ -13473,6 +13643,211 @@ class ATTRIBUTE_NAMES(metaclass=_AttributeNamesMeta): ChangelogEntry(version="0.0.0"), ], ), + "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 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 or dataCollection is configured accordingly.", + 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 or dataCollection is configured accordingly.", + 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 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, + 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 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, + 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 or dataCollection is configured accordingly.", + 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 or dataCollection is configured accordingly.", + 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_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_ms attribute", + ), + ], + ), "hardwareConcurrency": AttributeMetadata( brief="The number of logical CPU cores available.", type=AttributeType.STRING, @@ -18567,6 +18942,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_ms": int, "hardwareConcurrency": str, "http.client_ip": str, "http.decoded_response_content_length": int,