• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

全链路追踪 jaeger

武飞扬头像
一江溪水
帮助1

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

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbhgke
系列文章
更多 icon
同类精品
更多 icon
继续加载