失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 链路追踪之Jaeger安装与使用

链路追踪之Jaeger安装与使用

时间:2019-11-04 12:59:01

相关推荐

链路追踪之Jaeger安装与使用

Jaeger 介绍:

官方给出的特性介绍:

分布式上下文传递

分布式事务监控

根本原因分析

服务依赖分析

性能、延迟优化

可扩展性

Jaeger的后端为无单点故障设计,可随时根据需要进行扩展;uber每天使用它处理几十亿级别的span。

span,表示一个逻辑工作单元,包含有操作名称、起始时间以及操作耗时。span之间可以存在嵌套和并排关系,span之间也有顺序。

原生支持OpenTracing

通过span引用以有向无环图表示trace

支持强类型的span tag和结构化日志

通过baggage支持分布式的上下文传递

Jaeger的后端,webUI,以及相关的框架适配库的设计实现都是支持OpenTracing标准的;

另外,开头提到的OpenTelemetry也是兼容OpenTracing的,所以博主推荐直接使用OpenTelemetry的API,点击这里查看OpenTelemetry对各家语言和框架的SDK和适配库(英文称Instrumentation)。

云原生部署

官方已将Jaeger后端打包为docker镜像发布;

二进制文件支持CLI选项、ENV、配置文件方式三种方式加载配置;

K8s部署, 参考Kubernetes operator, Kubernetes templates and a Helm chart.

可观测性

Jaeger后端组件均支持暴露指标到Prometheus(其他监控后端也支持);

Log是通过第三日志库zap写到stdout

向后兼容Zipkin client

如果你已经使用Zipkin作为trace平台,并且希望迁移到Jaeger,不用太担心;

无需重写client代码,Jaeger后端支持Zipkin格式的span,只需要将数据的转发目的地指向Jaeger后端就行。

其创造者发布了一本书Mastering Distributed Tracing,其中涵盖了Jaeger的设计和操作的方方面面,以及常见的分布式链路追踪。

关于两者的选择,也是见仁见智吧;我个人的看法,如果你或你的团队主要使用Go语言开发,我仍然建议使用Jaeger,这样在使用过程中遇到库方面的问题后,你能够方便的查询client源码或Jaeger源码来定位问题,甚至也许你可以自己解决问题,或者也能够在Github上高效的反馈bug或提问;

另外,可以方便我们阅读源码学习其中的设计之道。

jaeger 安装:

1. 安装

为方便演示,使用官方推荐的Docker快速启动方式:

docker run -d --name=jaeger -p6831:6831/udp -p16686:16686 jaegertracing/all-in-one:latest

浏览器Web UI: http://localhost:16686/

注意:这个docker镜像封装的jaeger是把数据放在内存中的,仅用于测试,正式使用需指定后端存储。

2. 使用

现在需要一点数据让我们把页面操作起来。

package mainimport ("time""/opentracing/opentracing-go""/uber/jaeger-client-go"jaegercfg "/uber/jaeger-client-go/config")func main() {cfg := jaegercfg.Configuration{Sampler: &jaegercfg.SamplerConfig{Type: jaeger.SamplerTypeConst,Param: 1,},Reporter: &jaegercfg.ReporterConfig{LogSpans: true,LocalAgentHostPort: "127.0.0.1:6831",},ServiceName: "fish_test",}tracer, closer, err := cfg.NewTracer(jaegercfg.Logger(jaeger.StdLogger))if err != nil {panic(err)}opentracing.SetGlobalTracer(tracer)defer closer.Close()span := opentracing.StartSpan("go-grpc-web")time.Sleep(time.Second)defer span.Finish()}

如果觉得《链路追踪之Jaeger安装与使用》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。