如何使用 Micrometer 和 Zipkin 跟踪 Spring Boot 3 中的 HTTP 请求

问题描述 投票:0回答:1

我的目的是跟踪对我的系统的每个请求。我在 Youtube 上观看了下面的 2 个视频来配置 Micrometer 和 Zipkin 进行跟踪。

但是,当我访问

http://localhost:9411/zipkin/
时,它工作不正常,让我很困惑。

所以我有一些疑问:

  1. 一开始我从来没有执行过任何请求,为什么Zipkin仪表板上有这么多请求?
  2. 我使用Postman执行了三个请求(1个来自
    order-service
    ,2个来自
    product-service
    ),为什么它只显示来自
    order-service
    的请求,如下所示
  3. 为什么spans(Zipkin仪表板)总是1。虽然每个请求都必须先经过
    api-gateway service
    ,但这和视频1不一样。

对于 Micrometer 配置,我参考了 Micrometer 和 Zipkin:如何在 Spring 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>

这是我的架构系统:

java spring-boot spring-cloud zipkin micrometer-tracing
1个回答
0
投票

首先,我尝试检查

management.tracing.sampling.probability=1.0
,它引发了一个错误:

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

我真的不明白为什么会这样,后来我发现不一样,有2个依赖项,它们看起来很相似:

        <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-starter-actuator
  • 微米追踪桥酒店
  • opentelemetry-exporter-zipkin
© www.soinside.com 2019 - 2024. All rights reserved.