首页 > 其他分享 >Jaeger链路追踪

Jaeger链路追踪

时间:2024-10-24 10:11:54浏览次数:1  
标签:name jaeger Jaeger 链路 import 追踪 分布式

Jaeger介绍

  • 什么是链路追踪

    随着微服务分布式系统变得日趋复杂,越来越多的组件开始走向分布式化,如分布式服务、分布式数据库、分布式缓存等,使得后台服务构成了一种复杂的分布式网络。在服务能力提升的同时,复杂的网络结构也使问题定位更加困难。在一个请求在经过诸多服务过程中,出现了某一个调用失败的情况,查询具体的异常由哪一个服务引起的就变得十分抓狂,问题定位和处理效率是也会非常低。

    分布式链路追踪就是将一次分布式请求还原成调用链路,将一次分布式请求的调用情况集中展示,比如各个服务节点上的耗时、请求具体到达哪台机器上、每个服务节点的请求状态等等。

  • 为什么要使用链路追踪

    链路追踪为分布式应用的开发者提供了完整的调用链路还原、调用请求量统计、链路拓扑、应用依赖分析等工具,可以帮助开发者快速分析和诊断分布式应用架构下的性能瓶颈,提高微服务时代下的开发诊断效率。

  • Jaeger是一个端到端分布式跟踪的开源系统,可以监控复杂分布式系统中的事务并排除故障。

Jaeger案例快速体验

Docker安装Jaeger

docker run -d --name=jaeger \
  -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
  -p 5775:5775/udp \
  -p 6831:6831/udp \
  -p 6832:6832/udp \
  -p 5778:5778 \
  -p 16686:16686 \
  -p 14268:14268 \
  -p 9411:9411 \
  jaegertracing/all-in-one:latest

Jaeger在spring boot下集成使用

  1. 添加依赖: 首先,在您的Spring Boot项目的pom.xml文件中添加以下依赖:
<dependency>
    <groupId>io.opentracing.contrib</groupId>
    <artifactId>opentracing-spring-jaeger-cloud-starter</artifactId>
    <version>VERSION_HERE</version>
</dependency>

请将VERSION_HERE替换为适当的版本号。

  1. 配置应用程序:application.propertiesapplication.yml文件中添加Jaeger和OpenTracing的相关配置。以下是一个示例配置:
spring.application.name=your-application-name

# Jaeger Configuration
jaeger.service-name=your-service-name
jaeger.sender-type=udp
jaeger.udp-sender.host=localhost
jaeger.udp-sender.port=6831

替换your-application-nameyour-service-name为您的应用程序和服务名称。

  1. 启用分布式跟踪: 在Spring Boot应用程序的入口类上添加@EnableTracing注解以启用分布式跟踪。(待定,好像不需要EnableTracing也行)
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import io.opentracing.contrib.spring.tracer.configuration.EnableTracing;

@SpringBootApplication
@EnableTracing
public class YourApplication {

    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }
}
  1. 编写代码: 在您的应用程序代码中,可以使用OpenTracing API来创建跟踪信息。例如:
import io.opentracing.Span;
import io.opentracing.Tracer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class YourController {

    @Autowired
    private Tracer tracer;

    @GetMapping("/hello")
    public String hello() {
        Span span = tracer.buildSpan("helloSpan").start();
        span.setTag("custom-tag", "hello-tag");
        span.log("Hello, trace!");
        span.finish();
        return "Hello, world!";
    }
}

在上面的代码中,通过tracer对象创建了一个Span,并为Span添加了标签和日志。

  1. 启动应用程序: 启动您的Spring Boot应用程序,它将开始收集并显示与Jaeger关联的跟踪信息。
  2. 访问Jaeger UI: 打开浏览器,访问Jaeger UI。默认情况下,它通常位于http://localhost:16686。在UI中,您将能够查看应用程序的跟踪信息、依赖关系图等。

这些是一般的步骤,具体细节可能因版本、配置和需求而有所不同。请参考opentracing-spring-jaeger-cloud-starter的文档和示例,以便更好地集成和使用Jaeger分布式跟踪。

image

其他类似方案

Zipkin

参考

开源分布式跟踪系统Jaeger介绍 (六步快速上手)

标签:name,jaeger,Jaeger,链路,import,追踪,分布式
From: https://www.cnblogs.com/chq3272991/p/18499001

相关文章

  • 08.Sleuth(Micrometer)+ZipKin分布式链路追逐
    1.Sleuth进入维护模式替代方案->MicrometerTracing2.分布式链路追踪概述2.1出现背景在微服务框架中,一个由客户端发起的请求在后端系统中会经过多个不同的服务节点调用来协调产生最后的结果,每一个前端请求都会形成一条复杂的分布式服务调用链路,链路中的任何一环出现高延时......
  • 大数据实时链路备战——数据双流高保真压测
    作者:京东零售京东零售一、大数据双流建设1.1数据双流大数据时代,越来越多的业务依赖实时数据用于决策,比如促销调整,点击率预估、广告分佣等。为了保障业务的顺利开展,也为了保证整体大数据链路的高可用性,越来越多的0级系统建设双流,以保证日常及大促期间数据流的稳定性。建设核......
  • Linux通过复制网卡信息配置链路聚合
    1.首先通过命令查看网卡信息名称ifconfig2.之后进入到example_ifcfgs/3文件夹中cd/usr/share/doc/teamd-1.25/example_ifcfgs/33.然后分别修改eth1、eth2、team_test0修改里面的配置信息(使用以下命令是已经进入到目录/usr/share/doc/teamd-1.25/example_ifcfgs/3视图下)......
  • 车辆管理系统/车辆管理软件/车辆监控系统/车辆调度系统/车辆追踪系统/车辆信息管理系
    博主介绍......
  • 【计网笔记】数据链路层
    向上提供透明接口向下将比特流拆分为若干个帧,为每个帧计算校验和接收端基于校验和检查帧内的比特差错向上网络层接口无确认的无连接服务以太网无需逻辑连接双方无需确认有确认的无连接服务IEEE802.11(WiFi)无需逻辑连接接收方确认收到帧发送方如果超时未确认,就重新......
  • 分布式追踪系统Jaeger
    什么是Jaeger?Jaeger是一个分布式追踪系统,主要用于监控和故障排查分布式系统中的微服务架构。它帮助开发者跟踪请求在多个微服务中的路径,发现系统瓶颈,并分析各个服务之间的延迟和依赖关系。Jaeger最早由Uber开发,现在已经成为CNCF(CloudNativeComputingFoundation......
  • 链路与应用负载
    为什么需要负载如今越来越多的服务选择上云加入到互联网方便人们的使用人们对服务的访问质量要求更高对于高可靠性:电源:往往采取双电源模式当电源出现故障网络不会陷入瘫痪线路:有静态聚合将多条线路逻辑变成一条线路数据包会负载均衡的形式从多条逻辑成一条的......
  • 数据链路层知识点总结2
    目录前言一、什么叫做传统以太网?以太网有哪两个主要标准?二、试说明10BASE-T的“10”“BASE”和“T”所代表的意思三、以太网交换机有何特点?用它怎么样组成虚拟局域网?四、以太网使用CSMA/CD协议是以争用方式接入到共享信道的,这与传统的时分复用TDM相比有何优缺点总结......
  • 【教程4>第3章>第22节】基于双向链路的自适应调制解调通信链路FPGA实现1——理论分析研
      欢迎订阅FPGA/MATLAB/Simulink系列教程《★教程1:matlab入门100例》《★教程2:fpga入门100例》《★教程3:simulink入门60例》《★教程4:FPGA/MATLAB/Simulink联合开发入门与进阶X例》目录1.软件版本2.基于双向链路的自适应调制解调通信链路理论分析3.双向链路自......
  • 安乃达:用CRM构建从销售到管理到售后的全链路数字化运营平台
    安乃达驱动技术(上海)股份有限公司((简称:“安乃达”,股票代码为:“603350”))自2011年以来,公司通过多年的研发与积累现有直驱轮毂电机、减速轮毂电机和中置电机三大系列产品,并具备与电机相匹配的控制器、传感器、仪表等电驱动成套系统的配套供应能力。安乃达矢志不渝地致力于为您提......