全链路追踪 jaeger

Jaeger 概述在这里插入图片描述

JaegerUber 开发并开源的一款分布式追踪系统,兼容 OpenTracing API,适用于以下下场景:

  • 分布式跟踪信息传递
  • 分布式事务监控
  • 问题分析
  • 服务依赖性分析
  • 性能优化

特性

高扩展性

Jaeger后端的设计没有单点故障,可以根据业务需求进行扩展。

原生支持 OpenTracing

Jaeger后端,Web UI和工具库已完全设计为支持OpenTracing标准。

  • 通过跨度引用将迹线表示为有向无环图(不仅是树);
  • 支持强类型的跨度标签和结构化日志baggage
  • 支持通用的分布式上下文传播机制

多存储后端

  • Jaeger支持两个流行的开源NoSQL数据库作为跟踪存储后端:Cassandra 3.4+Elasticsearch 5.x / 6.x / 7.x
  • Jaeger还附带了一个简单的内存存储区,用于测试设置。

现代化的UI

  • Jaeger Web UI是使用流行的开源框架(如React)以Javascript实现的。
  • v1.0中发布了几项性能改进,以允许UI有效处理大量数据,并显示具有成千上万个跨度的跟踪
    在这里插入图片描述

云原生部署

  • Jaeger后端作为Docker映像的集合进行分发。
  • 这些二进制文件支持各种配置方法,包括命令行选项,环境变量和多种格式(yaml,toml等)的配置文件。
  • Kubernetes模板和Helm图表有助于将其部署到Kubernetes集群。

可观察性

  • 所有Jaeger后端组件都公开Prometheus指标(也支持其他指标后端)。
  • 使用结构化日志库zap将日志写到标准输出。

系统架构

在这里插入图片描述

  • Jaeger Client - 为不同语言实现了符合 OpenTracing 标准的 SDK。应用程序通过 API 写入数据,client librarytrace 信息按照应用程序指定的采样策略传递给 jaeger-agent

  • Agent - 是一个监听在 UDP 端口上接收 span 数据的网络守护进程,它会将数据批量发送给 collector。它被设计成一个基础组件,推荐部署到所有的宿主机上。Agentclient librarycollector 解耦,为 client library 屏蔽了路由和发现 collector 的细节。

  • Collector - 接收 jaeger-agent 发送来的数据,然后将数据写入后端存储。Collector 被设计成无状态的组件,因此您可以同时运行任意数量的 jaeger-collector

  • Data Store - 后端存储被设计成一个可插拔的组件,支持将数据写入 cassandraelastic search

  • Query - 接收查询请求,然后从后端存储系统中检索 trace 并通过 UI 进行展示。Query 是无状态的,您可以启动多个实例,把它们部署在 nginx 这样的负载均衡器后面。

采样速率

如果所有的请求都开启 Trace 显然会带来比较大的压力,另外,大量的数据也会带来很大存储压力。为此,jaeger 支持设置采样速率,根据系统实际情况设置合适的采样频率。

Jaeger 官方提供了多种采集策略,可以根据时间情况按需使用

  • const - 全量采集,采样率设置 0,1 分别对应打开和关闭
  • probabilistic - 概率采集,默认万份之一,0~1之间取值,
  • rateLimiting - 限速采集,每秒只能采集一定量的数据
  • remote - 一种动态采集策略,根据当前系统的访问量调节采集策略
Jaeger链路追踪是一种用于监控和追踪分布式系统中请求的工具。它可以帮助开发人员跟踪请求在系统中的传递路径,并提供详细的性能指标和错误信息。Jaeger的安装可以参考官方地址\[1\]和相关教程\[2\]。Jaeger由多个组件组成,包括Agent、Collector、Query Service等\[2\]。 在使用Go语言进行Jaeger链路追踪时,可以通过Jaeger客户端发送单个或多个span来追踪请求\[3\]。同时,还可以使用grpc发送span消息\[3\]。在Gin框架中,可以通过添加拦截器实现Jaeger的注入\[3\]。此外,还可以修改grpc_opentracing源码来实现Gin和gRPC的追踪\[3\]。 总结来说,Jaeger链路追踪是一种用于监控和追踪分布式系统中请求的工具,可以帮助开发人员跟踪请求的传递路径和性能指标。在Go语言中,可以使用Jaeger客户端发送span来实现链路追踪,并通过拦截器和修改源码来实现Gin和gRPC的追踪。 #### 引用[.reference_title] - *1* [【链路追踪Jaeger基于go的「Gin」「gRPC」进行链路追踪](https://blog.csdn.net/the_shy_faker/article/details/129044832)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [35、jaeger链路追踪](https://blog.csdn.net/qq23001186/article/details/126339369)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值