OpenCensus 是由 Google 发起并开源的一套观测性工具集。它在分布式追踪(Tracing)和指标监控(Metrics)领域曾具有重要影响力,现已与 OpenTracing 合并为 OpenTelemetry。
核心定位
与只定义接口规范的 OpenTracing 不同,OpenCensus 是一个 “全栈式” 的解决方案:
- API + SDK:它不仅定义了如何记录数据,还提供了多种语言(Go, Java, Python, C++ 等)的具体实现库。
- Tracing + Metrics:它是最早尝试将“链路追踪”和“统计指标”统一在同一个库中的项目。
- 内置 Exporters:它内置了将数据推送到各种后端(如 Prometheus, Stackdriver, Zipkin)的导出器。
为什么它很重要?
在观测性领域的发展史上,OpenCensus 贡献了两个关键思想:
- 标签传播 (Tags/Baggage):它完善了在分布式系统中传递上下文元数据的机制。
- 低开销采集:由于是 Google 内部 Census 系统的开源版,它在设计上非常注重高性能和低资源消耗。
现状:功成身退
结论:OpenCensus 目前已停止新功能开发。
虽然它曾是 Google 强力推动的标准,但为了解决社区分裂问题,它在 2019 年选择与 OpenTracing 合并。