Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

3. Spring Boot 4 + OpenTelemetry

3.1. 依赖配置

首先,在你的pom.xml中添加依赖:

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

然后在application.yml中添加配置:# application.yml

		
spring:
  application:
    name: meeting-service # 服务名称,会出现在追踪中
		
management:
  tracing:
    sampling:
      probability: 1.0 # 采样率,生产环境可调低
  otlp:
    tracing:
      endpoint: http://localhost:4318 # OTLP接收端点
  metrics:
    export:
      otlp:
        enabled: true
		
		

3.2. 定义 Span

通过注解添加自定义 Span:

		
import io.opentelemetry.instrumentation.annotations.WithSpan;

@Service
public class OrderService {
    
    @WithSpan("process-order") // 自定义Span名称
    public Order processOrder(OrderRequest request) {
        // 业务逻辑会自动被追踪
        validateRequest(request); // 子Span自动创建
        checkInventory(request.getItems());
        createOrderRecord(request);
        return order;
    }
}		
		
		

3.3. 日志追踪

在logback-spring.xml 中配置日志模式包含追踪信息:

		
<configuration>
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} [%X{traceId:-}] [%X{spanId:-}] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
    <root level="INFO">
        <appender-ref ref="CONSOLE" />
    </root>
</configuration>