BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Google发布Zipkin与Stackdriver Trace的集成功能,实现分布式应用的跟踪

| 作者 Daniel Bryant 关注 739 他的粉丝 ,译者 张卫滨 关注 13 他的粉丝 发布于 2017年1月19日. 估计阅读时间: 5 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

Google云平台(Google Cloud Platform)发布了一个开源的Zipkin服务器,允许兼容Zipkin的客户端发送跟踪信息到Google自己的Stackdriver Trace分布式跟踪服务中,从而实现分析的功能。Zipkin/Stackdriver Trace集成的目标用户是某些开发人员,他们的应用和服务是使用Stackdriver Trace官方所不支持的语言或框架编写的,或者是某些应用的持有者,这些应用已经通过Zipkin实现了instrument功能,他们还希望访问Stackdriver Trace的高级分析工具。

Google的Stackdriver能够对云平台上的应用提供监控、日志以及诊断服务。尽管任何云平台捕获到的数据都可以发送到Stackdriver API上,但是Stackdriver的功能是与Google云平台(Google Cloud Platform,GCP)(GCP的客户可以免费使用它)中的很多服务高度集成的。Google Stackdriver中包含了多个工具,其中就包括Stackdriver Trace,这是一个分布式的跟踪服务,它是由最初的Google Dapper分布式跟踪系统演化而来。

将分布式(微服务)系统进行instrument操作之后,Stackdriver Trace就允许开发人员跟踪系统的请求流,分析应用的延迟并隔离性能瓶颈。Stackdriver Trace最初关注的是Google App Engine项目,但是现在支持运行在虚拟机或容器上的应用,这是通过为Node.jsJavaGo(很快就会支持Ruby和.Net)提供instrumentation库实现的,它还可以通过API来实现该功能。

另外一个流行的分布式跟踪系统是Zipkin,它最初是由Twitter创建的,灵感起源于Dapper的论文。这项成果在2012年开源,随后发展成为社区驱动的Open Zipkin项目。它反过来又推动了Open Tracing API的形成,这是一个由CNCF支持的项目。Zipkin提供了一系列的instrumentation库,这些库能够捕获应用的trace,另外还有一个后端系统用来存储trace并支持通过Web界面展现trace信息。目前,已经有针对Java、.Net、Node.js、Python、Ruby和Go的Zipkin客户端,还有与各种流行Web框架的内置集成。根据GCP博客的说法,Zipkin得到了广泛的应用,Twitter、Yelp和Salesforce是该项目的主要贡献者。

Google云平台的博客文章指出,这个新的Stackdriver Trace Zipkin连接器是已有Zipkin后端的替代方案,它会继续使用相同的兼容Zipkin的跟踪器,这样的话,就没有必要再去配置、管理或维护Zipkin后端了。另外,新的收集器能够与使用Zipkin跟踪器实现instrument功能的服务协同运行。

目前的Stackdriver-Zipkin v0.2.0发布版本有几个已知的限制:

  1. Zipkin跟踪器必须要支持正确的Zipkin时间和持续时长语义
  2. Zipkin跟踪器和Stackdriver Trace instrumentation库不能向同一条trace记录上附加span,因为它们会对服务间传播的跟踪上下文采用不同的格式。这意味着某个库捕获的trace中不能包含其他类型的库instrument服务后所形成的span,也就是说,如何服务代码混合使用了Stackdriver Trace和Zipkin的instrument功能,那么跨越这些服务所形成的跟踪信息必须要在标准的Stackdriver报告系统之外进行集成;
  3. 最初的释放版本只支持对Zipkin服务器进行写操作,Google云平台的博客上指出,如果缺乏读取功能成为了一种阻碍的话,那么开发人员可以在GitHub上提交issue或pullrequest。

Google Stackdriver Trace Zipkin收集器的代码可以通过GoogleCloudPlatform GitHub仓库进行下载。配置以及从分布式跟踪器收集trace数据的指令可以在“组合使用Stackdriver Trace与Zipkin”指南中找到。

查看英文原文Google Release Zipkin Integration with Stackdriver Trace for Tracing Distributed Applications

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT