79 lines
5.3 KiB
Markdown
79 lines
5.3 KiB
Markdown
<!--- Hugo front matter used to generate the website version of this page:
|
|
linkTitle: Connect
|
|
--->
|
|
|
|
# Semantic conventions for Connect RPC
|
|
|
|
**Status**: [Development][DocumentStatus]
|
|
|
|
The Semantic Conventions for [Connect](https://connectrpc.com/) extend and override the [RPC spans](rpc-spans.md) and [RPC metrics](rpc-metrics.md) Semantic Conventions
|
|
that describe common RPC operations attributes in addition to the Semantic Conventions
|
|
described on this page.
|
|
|
|
## Connect RPC attributes
|
|
|
|
`rpc.system` MUST be set to `"connect_rpc"`.
|
|
|
|
Below is a table of attributes that SHOULD be included on client and server Connect RPC measurements.
|
|
|
|
<!-- semconv rpc.connect_rpc.attributes -->
|
|
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
|
|
<!-- see templates/registry/markdown/snippet.md.j2 -->
|
|
<!-- prettier-ignore-start -->
|
|
<!-- markdownlint-capture -->
|
|
<!-- markdownlint-disable -->
|
|
|
|
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|
|
|---|---|---|---|---|---|
|
|
| [`rpc.connect_rpc.error_code`](/docs/attributes-registry/rpc.md) | string | The [error codes](https://connectrpc.com//docs/protocol/#error-codes) of the Connect request. Error codes are always string values. | `cancelled`; `unknown`; `invalid_argument` | `Conditionally Required` [1] |  |
|
|
| [`rpc.connect_rpc.request.metadata.<key>`](/docs/attributes-registry/rpc.md) | string[] | Connect request metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values. [2] | `["1.2.3.4", "1.2.3.5"]` | `Opt-In` |  |
|
|
| [`rpc.connect_rpc.response.metadata.<key>`](/docs/attributes-registry/rpc.md) | string[] | Connect response metadata, `<key>` being the normalized Connect Metadata key (lowercase), the value being the metadata values. [3] | `attribute_value` | `Opt-In` |  |
|
|
|
|
**[1] `rpc.connect_rpc.error_code`:** If response is not successful and if error code available.
|
|
|
|
**[2] `rpc.connect_rpc.request.metadata.<key>`:** Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
|
|
Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
|
|
|
|
For example, a property `my-custom-key` with value `["1.2.3.4", "1.2.3.5"]` SHOULD be recorded as
|
|
the `rpc.connect_rpc.request.metadata.my-custom-key` attribute with value `["1.2.3.4", "1.2.3.5"]`
|
|
|
|
**[3] `rpc.connect_rpc.response.metadata.<key>`:** Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured.
|
|
Including all response metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information.
|
|
|
|
For example, a property `my-custom-key` with value `"attribute_value"` SHOULD be recorded as
|
|
the `rpc.connect_rpc.response.metadata.my-custom-key` attribute with value `["attribute_value"]`
|
|
|
|
---
|
|
|
|
`rpc.connect_rpc.error_code` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used.
|
|
|
|
| Value | Description | Stability |
|
|
|---|---|---|
|
|
| `aborted` | aborted |  |
|
|
| `already_exists` | already_exists |  |
|
|
| `cancelled` | cancelled |  |
|
|
| `data_loss` | data_loss |  |
|
|
| `deadline_exceeded` | deadline_exceeded |  |
|
|
| `failed_precondition` | failed_precondition |  |
|
|
| `internal` | internal |  |
|
|
| `invalid_argument` | invalid_argument |  |
|
|
| `not_found` | not_found |  |
|
|
| `out_of_range` | out_of_range |  |
|
|
| `permission_denied` | permission_denied |  |
|
|
| `resource_exhausted` | resource_exhausted |  |
|
|
| `unauthenticated` | unauthenticated |  |
|
|
| `unavailable` | unavailable |  |
|
|
| `unimplemented` | unimplemented |  |
|
|
| `unknown` | unknown |  |
|
|
|
|
<!-- markdownlint-restore -->
|
|
<!-- prettier-ignore-end -->
|
|
<!-- END AUTOGENERATED TEXT -->
|
|
<!-- endsemconv -->
|
|
|
|
## Connect RPC status
|
|
|
|
If `rpc.connect_rpc.error_code` is set, [Span Status](https://github.com/open-telemetry/opentelemetry-specification/tree/v1.44.0/specification/trace/api.md#set-status) MUST be set to `Error` and left unset in all other cases.
|
|
|
|
[DocumentStatus]: https://opentelemetry.io/docs/specs/otel/document-status
|