谷歌开源发布OpenCensus:一个统计数据收集和分布式跟踪框架
2018年01月19日 由 yining 发表
401210
0
昨天谷歌发布了OpenCensus,这是一个厂商中立的开放源码库,用于度量收集和跟踪。OpenCensus的构建是为了增加最小的开销,并部署在整个团队中,特别是基于微服务的架构。
对仪表化和可观测性的需求
作为一家初创公司,通常的重点是将产品的初始版本推出,快速原型并与客户进行迭代。大多数的初创公司都是作为一个简单的模型视图控制器(MVC)web应用程序开始的。随着客户基础、代码和工程师数量的增加,他们从单一的体系结构迁移到微服务体系结构。微服务体系结构有其优点,但常常使调试更具挑战性,因为传统的调试和监视工具并不总是在这些环境中工作,或者是为单一的用例设计的。当使用严格的服务等级目标(SLOs)操作多个微服务时,你需要深入了解可靠性和性能问题的根源。
没有合适的仪表化和观察能力会导致工程时间的损失,违反服务等级目标和客户变得沮丧。相反,应该从堆栈中收集诊断数据。这些数据可以用于事件管理,以识别和调试潜在的瓶颈,或者进行系统调优和性能改进。
OpenCensus
在谷歌规模上,一个最小开销的仪器层是一项要求。随着谷歌的发展,我们意识到拥有一个高效的跟踪和统计工具库的重要性,这个库可以被庞大部署。OpenCensus是谷歌的人口普查库的开源版本,它基于多年的优化经验编写。它的目标是让应用程序的收集和提交变得更加容易。它是一个厂商中立的、单一的库分布,可以自动从应用程序中收集跟踪和度量,并将它们显示在本地,并将它们发送到分析工具中。OpenCensus目前支持Prometheus、SignalFX、Stackdriver和Stackdriver这几种工具。
开发人员可以使用这个强大的、外框库来检测微服务,并将数据发送到任何受支持的后端。对于应用性能管理(APM)供应商,OpenCensus提供了免费的工具覆盖和最少的工作,并且为客户提供了一个简单的设置体验。
下面是Stackdriver跟踪和监控屏幕截图,演示了应用程序,该应用程序调用了Google的Cloud Bigtable API,并使用了OpenCensus。