Spring Boot 如何在Sping Boot 3中使用Micrometer & Zipkin跟踪HTTP请求

wydwbb8l  于 2023-10-16  发布在  Spring
关注(0)|答案(1)|浏览(287)

我的目的是跟踪每一个请求到我的系统。我在Youtube上观看了下面的2个视频,以配置Micrometer & Zipkin进行跟踪。

但是,当我访问http://localhost:9411/zipkin/时,它工作不正常,让我感到困惑。

所以我有几个问题:
1.起初,我从来没有执行任何请求,为什么Zipkin Jmeter 板上有这么多请求?
1.我使用Postman执行三个请求(1个来自order-service,2个来自product-service),为什么它只显示来自order-service的请求,像这样

1.为什么跨度(Zipkin Jmeter 板)总是1。虽然每个请求都必须首先通过api-gateway service,但它与视频1不同。
对于千分尺配置,我参考了千分尺和Zipkin:如何在Sping Boot 3中跟踪HTTP请求
我将management.tracing.sampling.probability=1.0插入到每个application.properties文件中,并将下面的依赖项插入到每个pom.xml中

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-observation</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-tracing-bridge-brave</artifactId>
        </dependency>
        <dependency>
            <groupId>io.zipkin.reporter2</groupId>
            <artifactId>zipkin-reporter-brave</artifactId>
        </dependency>

这是我的建筑系统:

mklgxw1f

mklgxw1f1#

首先,我尝试检查management.tracing.sampling.probability=1.0,它会引发一个错误:

Cannot resolve configuration property 'management.tracing.sampling.probability'

我真的不明白为什么会这样,之后我发现不同的,有2个dendencie,他们看起来很相似:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator</artifactId>
        </dependency>

        ...................
        ...................
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

我试着去找Spring的文档:actuator.micrometer-tracing.tracer-implementations,我意识到我实际需要的依赖关系是spring-boot-starter-actuator
我从文档中插入三个新的依赖项:

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-tracing-bridge-otel</artifactId>
        </dependency>
        <dependency>
            <groupId>io.opentelemetry</groupId>
            <artifactId>opentelemetry-exporter-zipkin</artifactId>
        </dependency>

总而言之,我们将使用这些依赖项来跟踪使用Micrometer & Zipkin的http请求。

  • Spring Boot起动器致动器
  • 测微跟踪电桥
  • Opentelemetry-exporter-zipkin

相关问题