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.

AttributeTypeDescriptionExamplesRequirement LevelStability
rpc.connect_rpc.error_codestringThe error codes of the Connect request. Error codes are always string values.cancelledConditionally 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-InExperimental
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-InExperimental

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

[2]: 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]: 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 MUST be one of the following:

ValueDescriptionStability
cancelledcancelledExperimental
unknownunknownExperimental
invalid_argumentinvalid_argumentExperimental
deadline_exceededdeadline_exceededExperimental
not_foundnot_foundExperimental
already_existsalready_existsExperimental
permission_deniedpermission_deniedExperimental
resource_exhaustedresource_exhaustedExperimental
failed_preconditionfailed_preconditionExperimental
abortedabortedExperimental
out_of_rangeout_of_rangeExperimental
unimplementedunimplementedExperimental
internalinternalExperimental
unavailableunavailableExperimental
data_lossdata_lossExperimental
unauthenticatedunauthenticatedExperimental

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.