【问题标题】:All traces lost after migration to SpringBoot 3迁移到 Spring Boot 3 后所有痕迹都丢失了
【发布时间】:2023-02-11 22:27:26
【问题描述】:

在将 Spring CLoud Stream 应用程序迁移到 Spring Boot 3 后,我遇到了与跟踪相关的问题。

该应用程序的代码仅在一个类中:

package com.example.micrometer;

import io.micrometer.observation.ObservationRegistry;
import io.micrometer.tracing.Tracer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.messaging.Message;
import reactor.core.publisher.Flux;

import java.util.function.Consumer;

@SpringBootApplication
public class StreamReactiveConsumerApplication implements CommandLineRunner {

    private static final Logger log = LoggerFactory.getLogger(StreamReactiveConsumerApplication.class);

    public static void main(String... args) {
        new SpringApplicationBuilder(StreamReactiveConsumerApplication.class).web(WebApplicationType.NONE).run(args);
    }

    @Override
    public void run(String... args) throws Exception {
        log.warn("Remember about calling <.subscribe()> at the end of your Consumer<Flux> bean!");
        log.warn("Remember about finishing the span manually before calling subscribe!");
    }

    @Bean
    Consumer<Flux<Message<String>>> channel(Tracer tracer, ObservationRegistry observationRegistry) {
        return flux -> flux.doOnNext(msg -> log.info("<ACCEPTANCE_TEST> <TRACE:{}> Hello from consumer",
                tracer.currentSpan().context().traceId()))
                .subscribe();
    }

}

spring:
  application:
    name: stream-reactive-consumer
  cloud:
    stream:
      bindings:
        channel-in-0.destination: myinput
      kafka:
        streams:
          binder:
            functions:
              kafkaStreamCountWords:
                configuration:
                  client.id: client-id-kafkaStreamCount

# For tests
logging:
  pattern:
    console: '%d{yyyy-MM-dd HH:mm:ss} [${spring.application.name:},%X{traceId:-},%X{spanId:-}] %logger{36} : %msg%n'


请注意我确实在 application.properties 中添加了日志记录模式,以及上下文传播库

尽管

https://micrometer.io/docs/observation#instrumentation_of_reactive_libraries

https://github.com/micrometer-metrics/tracing/wiki/Spring-Cloud-Sleuth-3.1-Migration-Guide

但是,所有痕迹都丢失了。

能否请你帮忙?

【问题讨论】:

    标签: java spring-boot micrometer-tracing


    【解决方案1】:

    我有同样的问题,你找到解决方案了吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      • 1970-01-01
      • 2023-02-22
      • 2023-01-25
      • 2022-12-09
      • 1970-01-01
      相关资源
      最近更新 更多