RPC

远程过程调用 (RPC) 属性

本文档定义了远程过程调用的属性。

Attributes

StabilityValue Type描述Example Values
rpc.connect_rpc.error_codeDevelopment字符串Connect 请求的 错误码。错误码始终是字符串值。cancelled; unknown; invalid_argument
rpc.connect_rpc.request.metadata.<key>Developmentstring[]Connect 请求元数据,<key> 为规范化的 Connect 元数据键(小写),值为元数据值。[1]["1.2.3.4", "1.2.3.5"]
rpc.connect_rpc.response.metadata.<key>Developmentstring[]Connect 响应元数据,<key> 为规范化的 Connect 元数据键(小写),值为元数据值。[2]["attribute_value"]
rpc.grpc.request.metadata.<key>Developmentstring[]gRPC 请求元数据,<key> 为规范化的 gRPC 元数据键(小写),值为元数据值。[3]["1.2.3.4", "1.2.3.5"]
rpc.grpc.response.metadata.<key>Developmentstring[]gRPC 响应元数据,<key> 为规范化的 gRPC 元数据键(小写),值为元数据值。[4]["attribute_value"]
rpc.grpc.status_codeDevelopmentintgRPC 请求的 数字状态码0; 1; 2
rpc.jsonrpc.error_codeDevelopmentint如果是错误响应,则为响应的 error.code 属性。-32700; 100
rpc.jsonrpc.error_messageDevelopment字符串如果是错误响应,则为响应的 error.message 属性。Parse error; User already exists
rpc.jsonrpc.request_idDevelopment字符串请求或响应的 id 属性。由于协议允许 id 为整数、字符串、null 或缺失(对于通知),因此为简化起见,预期值为字符串。对于 null 值,使用空字符串。如果是通知,则完全省略。10; request-7; ``
rpc.jsonrpc.versionDevelopment字符串协议版本,与请求/响应的 jsonrpc 属性相同。由于 JSON-RPC 1.0 未指定此项,因此可以省略此值。2.0; 1.0
rpc.message.compressed_sizeDevelopmentint消息的压缩大小(以字节为单位)。
rpc.message.idDevelopmentint必须计算为两个不同的计数器,分别从 1 开始,一个用于发送的消息,一个用于接收的消息。[5]
rpc.message.typeDevelopment字符串这是接收到的消息还是发送的消息。SENT; RECEIVED
rpc.message.uncompressed_sizeDevelopmentint消息的未压缩大小(以字节为单位)。
rpc.methodDevelopment字符串这是从 RPC 接口角度来看方法的逻辑名称。exampleMethod
rpc.serviceDevelopment字符串正在调用的服务的完整(逻辑)名称,包括其包名称(如果适用)。myservice.EchoService
rpc.systemDevelopment字符串标识远程系统的字符串。有关知名标识符列表,请参阅下文。grpc; java_rmi; dotnet_wcf

[1] rpc.connect_rpc.request.metadata.<key>Instrumentation 应要求明确配置要捕获哪些元数据值。包含所有请求元数据值可能存在安全风险——显式配置有助于避免泄露敏感信息。

例如,属性 my-custom-key,值为 ["1.2.3.4", "1.2.3.5"],应记录为 rpc.connect_rpc.request.metadata.my-custom-key 属性,值为 ["1.2.3.4", "1.2.3.5"]

[2] rpc.connect_rpc.response.metadata.<key>Instrumentation 应要求明确配置要捕获哪些元数据值。包含所有响应元数据值可能存在安全风险——显式配置有助于避免泄露敏感信息。

例如,属性 my-custom-key,值为 "attribute_value",应记录为 rpc.connect_rpc.response.metadata.my-custom-key 属性,值为 ["attribute_value"]

[3] rpc.grpc.request.metadata.<key>Instrumentation 应要求明确配置要捕获哪些元数据值。包含所有请求元数据值可能存在安全风险——显式配置有助于避免泄露敏感信息。

例如,属性 my-custom-key,值为 ["1.2.3.4", "1.2.3.5"],应记录为 rpc.grpc.request.metadata.my-custom-key 属性,值为 ["1.2.3.4", "1.2.3.5"]

[4] rpc.grpc.response.metadata.<key>Instrumentation 应要求明确配置要捕获哪些元数据值。包含所有响应元数据值可能存在安全风险——显式配置有助于避免泄露敏感信息。

例如,属性 my-custom-key,值为 ["attribute_value"],应记录为 rpc.grpc.response.metadata.my-custom-key 属性,值为 ["attribute_value"]

[5] rpc.message.id这样可以确保不同实现之间值的一致性。


rpc.connect_rpc.error_code 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。

描述Stability
abortedabortedDevelopment
already_existsalready_existsDevelopment
cancelledcancelledDevelopment
data_lossdata_lossDevelopment
deadline_exceededdeadline_exceededDevelopment
failed_preconditionfailed_preconditionDevelopment
internalinternalDevelopment
invalid_argumentinvalid_argumentDevelopment
not_foundnot_foundDevelopment
out_of_rangeout_of_rangeDevelopment
permission_deniedpermission_deniedDevelopment
resource_exhaustedresource_exhaustedDevelopment
unauthenticatedunauthenticatedDevelopment
unavailableunavailableDevelopment
unimplementedunimplementedDevelopment
unknownunknownDevelopment

rpc.grpc.status_code 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。

描述Stability
0OKDevelopment
1CANCELLEDDevelopment
2UNKNOWNDevelopment
3INVALID_ARGUMENTDevelopment
4DEADLINE_EXCEEDEDDevelopment
5NOT_FOUNDDevelopment
6ALREADY_EXISTSDevelopment
7PERMISSION_DENIEDDevelopment
8RESOURCE_EXHAUSTEDDevelopment
9FAILED_PRECONDITIONDevelopment
10ABORTEDDevelopment
11OUT_OF_RANGEDevelopment
12UNIMPLEMENTEDDevelopment
13INTERNALDevelopment
14UNAVAILABLEDevelopment
15DATA_LOSSDevelopment
16UNAUTHENTICATEDDevelopment

rpc.message.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。

描述Stability
RECEIVEDreceivedDevelopment
SENTsentDevelopment

rpc.system 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。

描述Stability
apache_dubboApache DubboDevelopment
connect_rpcConnect RPCDevelopment
dotnet_wcf.NET WCFDevelopment
grpcgRPCDevelopment
java_rmiJava RMIDevelopment
jsonrpcJSON-RPCDevelopment
onc_rpcONC RPC (Sun RPC)Development

已弃用的 RPC 属性

已弃用的 rpc 消息属性。

Attributes

StabilityValue Type描述Example Values
message.compressed_sizeDeprecated
已替换为 rpc.message.compressed_size
int已弃用,请改用 rpc.message.compressed_size
message.idDeprecated
已替换为 rpc.message.id
int已弃用,请改用 rpc.message.id
message.typeDeprecated
已替换为 rpc.message.type
字符串已弃用,请改用 rpc.message.typeSENT; RECEIVED
message.uncompressed_sizeDeprecated
已替换为 rpc.message.uncompressed_size
int已弃用,请改用 rpc.message.uncompressed_size

message.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。

描述Stability
RECEIVEDreceivedDevelopment
SENTsentDevelopment