You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Quarkus OpenTracing能否同时将追踪信息写入服务日志与Jaeger实例?

在Quarkus中同时将OpenTracing追踪信息写入服务日志和Jaeger实例

完全可以实现同时把追踪信息输出到服务日志并发送给独立Jaeger实例,以下是具体配置步骤:

一、配置追踪ID写入服务日志

Quarkus的OpenTracing扩展会自动将traceId和spanId注入到日志的MDC(映射诊断上下文)中,只需修改日志格式即可将这些信息附加到每条日志里:

  • 修改application.properties,配置控制台日志格式(以默认的JBoss Logging为例):
    quarkus.log.console.format=%d{HH:mm:ss} %-5p traceId=%X{traceId}, spanId=%X{spanId} [%c{2.}] (%t) %s%e%n
    
  • 如果使用JSON格式日志(比如quarkus-logging-json扩展),可以添加自定义字段:
    quarkus.log.json.additional-field."traceId"=%X{traceId}
    quarkus.log.json.additional-field."spanId"=%X{spanId}
    
    配置后,每条日志都会自动带上当前请求的追踪ID,方便后续关联日志与Jaeger中的追踪链路。

二、配置Jaeger实例收集追踪数据

  1. 引入Quarkus Jaeger扩展:
    如果用Maven,在pom.xml中添加依赖;如果用Gradle,添加对应的依赖项(直接使用Quarkus官方提供的quarkus-opentracing-jaeger扩展即可)。
  2. 在application.properties中配置Jaeger连接信息:
    # 服务标识,会在Jaeger中显示
    quarkus.jaeger.service-name=your-service-name
    # Jaeger的HTTP接收端点
    quarkus.jaeger.endpoint=http://your-jaeger-host:14268/api/traces
    # 采样策略,const表示全采样,适合测试环境
    quarkus.jaeger.sampler-type=const
    quarkus.jaeger.sampler-param=1
    
    根据实际环境调整endpoint地址和采样策略即可。

完成以上配置后,Quarkus会同时将追踪数据发送到Jaeger实例,并且在服务日志中输出包含traceId和spanId的日志条目,两者互不影响,可同时生效。

内容的提问来源于stack exchange,提问作者sg2000

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 18:42:07