Как отслеживать HTTP-запросы в Spring Boot 3 с помощью Micrometer и Zipkin

Моя цель — отслеживать каждый запрос к моей системе. Я посмотрел два видео ниже на Youtube, чтобы настроить Micrometer и Zipkin для отслеживания.

Но когда я получил доступ к http://localhost:9411/zipkin/, он работал ненормально и меня смутил.

Поэтому у меня есть несколько вопросов по этому поводу:

  1. Поначалу я никогда не выполняю никаких запросов, почему на панели управления Zipkin так много запросов?
  2. Я использую Postman для выполнения трех запросов (1 от order-service, 2 от product-service), почему он показывает только запросы от order-service вот так
  3. Почему диапазон (панель управления Zipkin) всегда равен 1. Хотя каждый запрос должен сначала пройти обработку api-gateway service, это не то же самое, что видео 1.

Для конфигурации Micrometer я ссылаюсь на Micrometer и Zipkin: Как отслеживать HTTP-запросы в Spring Boot 3

Я вставляю 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>

Это моя архитектурная система:

Эй, есть кто-нибудь здесь? Я потратил много времени, но еще не исправил, помогите мне!

magnuscarlsen 06.10.2023 00:07
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
1
122
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Сначала я пытаюсь проверить 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>

Подводя итог, мы будем использовать эти зависимости для отслеживания http-запросов с помощью Micrometer и Zipkin.

  • пружинный-загрузочный-стартер-привод
  • микрометр-трассировка-мост-отель
  • opentelemetry-exporter-zipkin

Другие вопросы по теме