100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 全链路追踪 jaeger

全链路追踪 jaeger

时间:2020-05-14 15:37:48

相关推荐

全链路追踪 jaeger

Jaeger 概述

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

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

特性

高扩展性

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

原生支持 OpenTracing

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

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

多存储后端

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

现代化的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- 一种动态采集策略,根据当前系统的访问量调节采集策略

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