宣布 RPC 语义约定稳定项目
语义约定 SIG 很高兴启动 RPC 稳定工作!
继 2025 年 5 月数据库约定稳定之后,我们将继续努力稳定关键领域——RPC 是下一个。
定义一个稳健的约定需要集体的努力,特别是对于像 RPC 技术这样多样化的领域,它包括 gRPC、JSON-RPC、Apache Dubbo 等等。如果您在这些框架之一上工作,广泛使用它们,或者只是有兴趣了解更多,请加入我们——我们非常希望得到您的帮助!
迈向可靠的遥测约定
可靠、明确的约定是更丰富遥测体验的跑道。当信号和属性名称保持一致时,每个人都可以花时间构建告警、仪表板和可视化——而不是处理破坏性更改的麻烦。
现有的实验性约定已经使用了相当长一段时间,我们理解在相应的仪表化中引入任何破坏性更改都会造成干扰。
我们坚信,从长远来看,这些更改对于提供高质量的、产生可操作的、有用的遥测的仪表化是必不可少的。
为了确保平稳过渡,我们计划遵循一个平滑迁移计划。仪表化库将:
- 在选择加入标志下发布新的语义约定,与现有约定并行,
- 在较长时间内维护两种约定版本,
- 提供详细的迁移指南。
语义约定稳定是如何工作的?
在稳定阶段,我们审查现有约定,以确保它们为大多数使用该技术的应用程序提供有意义的见解。我们检查约定是否能够以合理的性能开销实现通用仪表化,同时还要考虑隐私、遥测量、一致性以及与更高级别应用程序和更低级别传输遥测的相关性。
我们的目标是制定有用、可用且可扩展的约定。
对于 RPC,我们正专注于以下主要领域:
关键信号:我们旨在定义一组核心遥测信号,例如客户端/服务器 span 和调用持续时间直方图,这些信号可以在不同框架之间一致地记录。它们支持常见的调试工作流程和 RED(速率、错误、持续时间)指标。我们将审查现有约定,确定核心属性,并记录它们的通用定义和特定于框架的应用。
特定于框架的遥测:我们鼓励框架使用其他属性、span 或指标来扩展通用约定,以反映其特定功能。我们将审查这些扩展,包括社区维护的扩展,例如gRPC 指标。
范围:双向流本身就存在有限的可观察性。我们将评估哪些有用的信号可以被实际捕获。
一致性和指南:多年来,我们在命名、记录对等方详细信息或错误方面开发了更好的实践。RPC 约定将更新以符合这些最新指南。
原型:稳定性的一个关键要求是拥有遵循约定的实际仪表化和原型。这些实现为清晰度、可行性和实际价值提供了关键反馈,并有助于验证该方法是否适用于不同的库和协议。
如何参与?
我们正在寻找在任何流行 RPC 框架方面有经验的贡献者,以及任何有兴趣构建仪表化原型的个人。如果您想参与,请通过评论RPC 稳定项目提案来加入我们。