如何为AWS Distro for OpenTelemetry添加RabbitMQ自动Instrumentation
如何为Spring Boot添加RabbitMQ的OpenTelemetry Instrumentation
你需要手动添加OpenTelemetry针对Spring RabbitMQ的专用instrumentation依赖,因为opentelemetry-spring-boot-starter的开箱即用列表中未包含该组件。具体操作如下:
步骤1:添加RabbitMQ Instrumentation依赖
在你的dependencies块中加入以下依赖,版本会自动继承你已声明的opentelemetry-instrumentation-bom:2.9.0:
implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-rabbit-2.4'
步骤2:验证(可选)
启动应用后,生产者发送消息、消费者接收消息时,OpenTelemetry会自动生成对应的Trace Span,你可以通过Actuator的/actuator/metrics或配置的OTel Collector查看链路数据。
修改后的完整依赖配置
dependencyManagement { imports { mavenBom "io.opentelemetry:opentelemetry-bom:1.40.0" mavenBom "io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom:2.9.0" } } dependencies { implementation 'org.springframework.boot:spring-boot-starter-amqp' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation 'net.logstash.logback:logstash-logback-encoder:6.6' implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-boot-starter' // 添加RabbitMQ Instrumentation依赖 implementation 'io.opentelemetry.instrumentation:opentelemetry-spring-rabbit-2.4' runtimeOnly 'io.opentelemetry.instrumentation:opentelemetry-log4j-context-data-2.17-autoconfigure' implementation 'io.micrometer:micrometer-tracing-bridge-otel:1.3.5' implementation 'io.opentelemetry.contrib:opentelemetry-samplers:1.40.0-alpha' compileOnly 'org.projectlombok:lombok:1.18.20' annotationProcessor 'org.projectlombok:lombok:1.18.20' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.amqp:spring-rabbit-test' }
说明:这个依赖会自动拦截Spring RabbitMQ的RabbitTemplate发送操作和@RabbitListener消费操作,生成符合OpenTelemetry规范的链路追踪数据,无需额外编写代码。
内容的提问来源于stack exchange,提问作者Life of MAK
相关产品推荐
相关产品推荐

