宣布启动 RPC 语义约定稳定性项目
语义约定 SIG 很高兴宣布正式启动 RPC 稳定性推进工作!
继 2025 年 5 月数据库语义约定完成稳定后,我们将继续推进关键领域的标准化,而 RPC 是下一个重点。
要制定出坚实的约定,尤其在像 RPC 这样技术多样的领域,需要集体协作。RPC 涵盖了 gRPC、JSON-RPC、Apache Dubbo 等众多框架。如果你正在使用或开发这些框架, 或对它们感兴趣,欢迎加入我们的工作 —— 我们非常欢迎你的参与!
致力于构建可靠的遥测约定
可靠、定义清晰的约定是构建丰富遥测体验的前提。当信号和属性名称保持一致时, 开发者就能专注于构建告警、仪表板和可视化,而不是应对由不兼容变更引发的问题。
现有的实验性约定已被使用了一段时间,我们也意识到对相关探针做出破坏性更改将带来干扰。
但我们坚信,从长远来看,这些更改对于实现高质量、可操作的遥测数据是必不可少的。
为了平稳过渡, 我们将遵循一项温和迁移计划。 各类探针库将:
- 将新语义约定作为“可选开启”功能与现有约定并行提供;
- 在较长一段时间内同时支持新旧两个版本;
- 提供详细的迁移指南。
语义约定如何完成“稳定”?
在稳定化阶段,我们将审查现有约定,确保它们能为大多数应用提供有意义的洞察。 我们会验证这些约定是否支持通用探针实现,且在性能、隐私、遥测体积、 一致性以及与应用层或传输层遥测的关联性方面达成合理平衡。
我们追求“有用、可用、可扩展”的语义约定。
关于 RPC,我方将聚焦以下关键领域:
核心信号:定义一套核心遥测信号(如 client/server span 及调用时延直方图), 可在不同框架中一致记录,支持常见调试流程和 RED 指标(请求率、错误率、延迟)。 我们将审查现有约定,识别关键属性,并文档化其通用定义与框架特定实现。
框架特定遥测:我们鼓励各框架在通用约定基础上,扩展其特有属性、span 或指标。 例如社区维护的 gRPC metrics。 我们也将审查这些扩展内容。
适用范围:双向流式调用天然存在可观测性限制,我们将评估哪些信号具有现实可行性。
一致性与最佳实践:我们过去几年在命名、记录对端信息和错误方面积累了不少最佳实践, RPC 约定也将对齐这些新准则。
原型验证:要完成稳定,必须有符合约定的真实世界探针或原型。 这些实现能帮助验证约定的清晰度、可行性和实际价值,也能确保它们适用于不同的库和协议。
如何参与?
我们正在寻找熟悉任何主流 RPC 框架的开发者,也欢迎希望参与原型探针开发的贡献者。 如果你有兴趣参与,请在 RPC 稳定化项目提案下留言, 与我们一同推进这个项目。