RPC 的语义约定

状态: 开发中

本文档定义了远程过程调用 (RPC)(也称为“远程方法调用” (RMI))的语义约定。

警告 使用本文件 v1.37.0(或之前版本)的现有 RPC 仪器

  • 不应在现有主版本中更改其默认发出的 RPC 约定版本。约定包括(但不限于)属性、指标和 Span 名称以及度量单位。
  • 应在其现有主版本中引入一个环境变量 OTEL_SEMCONV_STABILITY_OPT_IN,该变量是以逗号分隔的类别特定值列表(例如,http、databases、rpc)。值列表包括
    • rpc - 发出稳定的 RPC 约定,并停止发出仪器化先前发出的实验性 RPC 约定。
    • rpc/dup - 同时发出实验性和稳定的 RPC 约定,从而允许对稳定语义约定进行分阶段推出。
    • 默认行为(在没有这些值的情况下)是继续发出仪器化先前发出的旧实验性 RPC 约定的任何版本。
    • 注意:如果同时存在 rpcrpc/dup 这两个值,rpc/dup 的优先级高于 rpc
  • SHOULD 在开始发出这两套约定后,至少维护其现有主版本(至少包括安全补丁)六个月。
  • 可以在其下一个主版本中删除环境变量,并且仅发出稳定的 RPC 约定。

RPC 的语义约定针对以下信号定义

  • RPC Spans:RPC 客户端和服务器span的语义约定。
  • RPC Metrics:RPCmetric的语义约定。

特定技术的语义约定针对以下 RPC 系统定义

  • ConnectConnect RPC 的语义约定。
  • gRPCgRPC 的语义约定。
  • JSON-RPCJSON-RPC 的语义约定。

由 RPC 系统维护者定义的规范

  • gRPCgRPC的语义约定。