Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

since vesion 1.30, can not get trace.id from MDC

未关闭
#3,865 2 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
4/5
预计耗时
3-5 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
基本清楚
活跃度
停滞
技术栈
java

调研方向

从提供的 GlobalResponseBodyAdvice 复现开始,比较使用 elastic-apm-agent-1.29.0.jar 与 1.30.1 及更高版本时 MDC.get("trace.id") 的行为。调查 agent 在 beforeBodyWrite 入口点附近的 MDC 集成,并使用调试日志缩小回归范围。当 trace ID 在受影响的版本中按预期可用,或已记录受支持的获取方式时,即视为完成。

由索引模型根据 Issue 内容生成。

描述

agent-java community

We kindly ask to post all questions and issues on the Discuss forum first. In addition to awesome, knowledgeable community contributors, core APM developers are on the forums every single day to help you out as well, so your questions will reach a wider audience there. If we confirm that there is a bug, then you can open an issue in this repo.

Describe the bug

since vesion 1.30, can not get trace.id from MDC

Steps to reproduce

@ControllerAdvice
@Slf4j
public class GlobalResponseBodyAdvice implements ResponseBodyAdvice<Object> {
    @Override
    public boolean supports(MethodParameter returnType, Class<? extends HttpMessageConverter<?>> converterType) {
        return true;
    }

    @Override
    public Object beforeBodyWrite(Object body, MethodParameter returnType, MediaType selectedContentType, Class<? extends HttpMessageConverter<?>> selectedConverterType, ServerHttpRequest request, ServerHttpResponse response) {
        log.info("trace.id:{}", MDC.get("trace.id"));
        return body;
    }
}

agent jar: elastic-apm-agent-1.30.1.jar or after this version
call MDC.get("trace.id"), it returns null
Image

agent jar: elastic-apm-agent-1.29.0.jar
call MDC.get("trace.id"), it returns the correct string
Image

Expected behavior

call MDC.get("trace.id"), it should return the correct string.

or how can I get correct string

Debug logs

Click to expand
replace this line with your debug logs
主要语言
Java
星标
593
派生
339
平均合并
1 天 9 小时
30 天内合并 PR
13

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

elastic/apm-agent-java 的其他 Issue

查看 elastic/apm-agent-java 的全部 Issue

相似的 Issue

更多 Java Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。