RPC
远程过程调用 (RPC) 属性
本文档定义了远程过程调用的属性。
Attributes
| 键 | Stability | Value Type | 描述 | Example Values |
|---|---|---|---|---|
rpc.connect_rpc.error_code | 字符串 | Connect 请求的 错误码。错误码始终是字符串值。 | cancelled; unknown; invalid_argument | |
rpc.connect_rpc.request.metadata.<key> | string[] | Connect 请求元数据,<key> 为规范化的 Connect 元数据键(小写),值为元数据值。[1] | ["1.2.3.4", "1.2.3.5"] | |
rpc.connect_rpc.response.metadata.<key> | string[] | Connect 响应元数据,<key> 为规范化的 Connect 元数据键(小写),值为元数据值。[2] | ["attribute_value"] | |
rpc.grpc.request.metadata.<key> | string[] | gRPC 请求元数据,<key> 为规范化的 gRPC 元数据键(小写),值为元数据值。[3] | ["1.2.3.4", "1.2.3.5"] | |
rpc.grpc.response.metadata.<key> | string[] | gRPC 响应元数据,<key> 为规范化的 gRPC 元数据键(小写),值为元数据值。[4] | ["attribute_value"] | |
rpc.grpc.status_code | int | gRPC 请求的 数字状态码。 | 0; 1; 2 | |
rpc.jsonrpc.error_code | int | 如果是错误响应,则为响应的 error.code 属性。 | -32700; 100 | |
rpc.jsonrpc.error_message | 字符串 | 如果是错误响应,则为响应的 error.message 属性。 | Parse error; User already exists | |
rpc.jsonrpc.request_id | 字符串 | 请求或响应的 id 属性。由于协议允许 id 为整数、字符串、null 或缺失(对于通知),因此为简化起见,预期值为字符串。对于 null 值,使用空字符串。如果是通知,则完全省略。 | 10; request-7; `` | |
rpc.jsonrpc.version | 字符串 | 协议版本,与请求/响应的 jsonrpc 属性相同。由于 JSON-RPC 1.0 未指定此项,因此可以省略此值。 | 2.0; 1.0 | |
rpc.message.compressed_size | int | 消息的压缩大小(以字节为单位)。 | ||
rpc.message.id | int | 必须计算为两个不同的计数器,分别从 1 开始,一个用于发送的消息,一个用于接收的消息。[5] | ||
rpc.message.type | 字符串 | 这是接收到的消息还是发送的消息。 | SENT; RECEIVED | |
rpc.message.uncompressed_size | int | 消息的未压缩大小(以字节为单位)。 | ||
rpc.method | 字符串 | 这是从 RPC 接口角度来看方法的逻辑名称。 | exampleMethod | |
rpc.service | 字符串 | 正在调用的服务的完整(逻辑)名称,包括其包名称(如果适用)。 | myservice.EchoService | |
rpc.system | 字符串 | 标识远程系统的字符串。有关知名标识符列表,请参阅下文。 | 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 |
|---|---|---|
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 |
rpc.grpc.status_code 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
0 | OK | |
1 | CANCELLED | |
2 | UNKNOWN | |
3 | INVALID_ARGUMENT | |
4 | DEADLINE_EXCEEDED | |
5 | NOT_FOUND | |
6 | ALREADY_EXISTS | |
7 | PERMISSION_DENIED | |
8 | RESOURCE_EXHAUSTED | |
9 | FAILED_PRECONDITION | |
10 | ABORTED | |
11 | OUT_OF_RANGE | |
12 | UNIMPLEMENTED | |
13 | INTERNAL | |
14 | UNAVAILABLE | |
15 | DATA_LOSS | |
16 | UNAUTHENTICATED |
rpc.message.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
RECEIVED | received | |
SENT | sent |
rpc.system 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
apache_dubbo | Apache Dubbo | |
connect_rpc | Connect RPC | |
dotnet_wcf | .NET WCF | |
grpc | gRPC | |
java_rmi | Java RMI | |
jsonrpc | JSON-RPC | |
onc_rpc | ONC RPC (Sun RPC) |
已弃用的 RPC 属性
已弃用的 rpc 消息属性。
Attributes
| 键 | Stability | Value Type | 描述 | Example Values |
|---|---|---|---|---|
message.compressed_size | 已替换为 rpc.message.compressed_size。 | int | 已弃用,请改用 rpc.message.compressed_size。 | |
message.id | 已替换为 rpc.message.id。 | int | 已弃用,请改用 rpc.message.id。 | |
message.type | 已替换为 rpc.message.type。 | 字符串 | 已弃用,请改用 rpc.message.type。 | SENT; RECEIVED |
message.uncompressed_size | 已替换为 rpc.message.uncompressed_size。 | int | 已弃用,请改用 rpc.message.uncompressed_size。 |
message.type 具有以下已知值列表。如果其中一个适用,则必须使用相应的值;否则,可以改用自定义值。
| 值 | 描述 | Stability |
|---|---|---|
RECEIVED | received | |
SENT | sent |