Jaeger加入CNCF

JaegerUber开源的 OpenTracing实现,包括客户端和服务端。

Jaeger项目4月14日开源,9月13日被 CNCF接受成为第12个托管项目, CNCF Hosts Jaeger。CNCF托管的其他11个项目是:

  1. Kubernetes
  2. Prometheus
  3. OpenTracing
  4. Fluentd
  5. Linkerd
  6. gRPC
  7. CoreDNS
  8. containerd
  9. rkt
  10. CNI
  11. Envoy

Jaeger架构

Jaeger的架构如下图所示:

Jaeger Architecture 图片来自http://jaeger.readthedocs.io/en/latest/architecture/

Jaeger的架构很简洁:

  1. 在每个服务器上运行 jaeger-agent,用于收集本服务器的信息,然后发送给 jaeger-collector
  2. 每个服务都嵌入 jaeger-client,这是一个客户端,会把服务的请求处理的tracing信息发送给 jaeger-agent
  3. jaeger-collector是一个中心化的服务端,用于收集 jaeger-agent发送过来的tracing信息进行处理后存储到数据库中(目前只支持Cassandra)。
  4. jaeger-query是一个查询服务,对外保护tracing信息的查询API。
  5. jaeger-ui是一个浏览器客户端。

Jaeger的demo

Jaeger项目的leader写了一篇很好的文章来介绍Jaeger的使用 Take OpenTracing for a HotROD ride

文中演示了查看服务的架构,查看请求的详细构成,定位延迟原因等基本用法。还介绍了span,基于上下文的log,tag,OpenTracing baggage等概念。要了解 Jaeger能做什么,可以从这篇文章开始。

这个demo项目是用了 UberTChannel来实现微服务的RPC,它已经和OpenTracing做了集成,用起来很方便。另外一个流行的rpc框架 gRPC也已经和OpenTracing进行了集成。


知识共享许可协议本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可。