Skip to content

Latest commit

 

History

History
70 lines (52 loc) · 5.06 KB

connect-rpc.md

File metadata and controls

70 lines (52 loc) · 5.06 KB

Semantic Conventions for Connect RPC

Status: Experimental

The Semantic Conventions for Connect extend and override the RPC spans and RPC metrics 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.

Attribute Type Description Examples Requirement Level Stability
rpc.connect_rpc.error_code string The error codes of the Connect request. Error codes are always string values. cancelled; unknown; invalid_argument Conditionally Required [1] Experimental
rpc.connect_rpc.request.metadata.<key> string[] Connect request metadata, <key> being the normalized Connect Metadata key (lowercase), the value being the metadata values. [2] rpc.request.metadata.my-custom-metadata-attribute=["1.2.3.4", "1.2.3.5"] Opt-In Experimental
rpc.connect_rpc.response.metadata.<key> string[] Connect response metadata, <key> being the normalized Connect Metadata key (lowercase), the value being the metadata values. [3] rpc.response.metadata.my-custom-metadata-attribute=["attribute_value"] Opt-In Experimental

[1] rpc.connect_rpc.error_code: If response is not successful and if error code available.

[2] rpc.connect_rpc.request.metadata: 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.

[3] rpc.connect_rpc.response.metadata: 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.


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 Experimental
already_exists already_exists Experimental
cancelled cancelled Experimental
data_loss data_loss Experimental
deadline_exceeded deadline_exceeded Experimental
failed_precondition failed_precondition Experimental
internal internal Experimental
invalid_argument invalid_argument Experimental
not_found not_found Experimental
out_of_range out_of_range Experimental
permission_denied permission_denied Experimental
resource_exhausted resource_exhausted Experimental
unauthenticated unauthenticated Experimental
unavailable unavailable Experimental
unimplemented unimplemented Experimental
unknown unknown Experimental

Connect RPC Status

If rpc.connect_rpc.error_code is set, Span Status MUST be set to Error and left unset in all other cases.