首页 > Java > java教程 > 正文

将 MDC 上下文值记录到 New Relic

聖光之護
发布: 2025-09-26 19:59:01
原创
269人浏览过

将 mdc 上下文值记录到 new relic

将 MDC 上下文值记录到 New Relic

本文旨在指导开发者如何配置 Spring Boot 项目,在使用 Logback 打印日志的同时,将 MDC(Mapped Diagnostic Context)上下文中的值正确地传递到 New Relic 监控平台。通过修改 New Relic 的配置文件,启用上下文数据转发功能,确保请求 ID 等重要信息能够被 New Relic 捕获和分析,从而提升问题诊断和性能优化的效率。

在使用 Spring Boot 和 Logback 构建的应用中,MDC 是一种强大的工具,用于在日志中添加上下文信息,例如请求 ID、用户 ID 等。这些信息对于追踪和调试分布式系统中的问题至关重要。然而,默认情况下,New Relic 可能无法自动捕获 MDC 上下文中的值。以下步骤将指导您如何配置 New Relic 以正确地记录这些值。

配置 New Relic Agent

要将 MDC 上下文值转发到 New Relic,需要在 newrelic.yml 配置文件中启用 context_data 转发功能。打开您的 newrelic.yml 文件,并添加或修改以下配置:

common: &default_settings
    # 转发 Diagnostic Context 到 New Relic Agent
    forwarding:
        context_data:
            enabled: true
登录后复制

这个配置告诉 New Relic Agent 将诊断上下文数据(包括 MDC 值)转发到 New Relic 平台。

示例 Logback 配置 (logback.xml)

Tellers AI
Tellers AI

Tellers是一款自动视频编辑工具,可以将文本、文章或故事转换为视频。

Tellers AI 78
查看详情 Tellers AI

以下是一个示例 logback.xml 配置文件,展示了如何使用 MDC 以及如何配置 New Relic Encoder 和 Async Appender:

<configuration>
    <appender name="STDOUT" class="ch.qos.logback.core.FileAppender">
        <file>logs/logback-app.log</file>
        <append>false</append>
        <!-- encoders are assigned the type
             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
        <encoder class="com.newrelic.logging.logback.NewRelicEncoder">
        </encoder>
    </appender>

    <appender name="ASYNC" class="com.newrelic.logging.logback.NewRelicAsyncAppender">
        <appender-ref ref="STDOUT" />
    </appender>

    <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%X{request-id} %d %-5level [%thread] %logger{0}: %msg%n</pattern>
        </encoder>
    </appender>

    <root level="TRACE">
        <appender-ref ref="ASYNC" />
        <appender-ref ref="Console" />
    </root>
</configuration>
登录后复制

在这个配置中:

  • com.newrelic.logging.logback.NewRelicEncoder 用于格式化日志消息,以便 New Relic 可以正确解析它们。
  • com.newrelic.logging.logback.NewRelicAsyncAppender 用于异步地将日志消息发送到 New Relic,从而避免阻塞应用程序的主线程。
  • %X{request-id} 用于从 MDC 上下文中获取 request-id 的值,并将其包含在控制台输出的日志消息中。

注意事项

  • 确保您的 New Relic Agent 版本支持上下文数据转发功能。
  • 验证 newrelic.yml 文件的配置是否正确,并且 Agent 能够正确加载该文件。
  • 检查 New Relic 平台,确认 MDC 值是否已成功记录。通常,您可以在 New Relic 的日志事件或自定义属性中找到这些值。
  • 如果 MDC 值仍然无法显示在 New Relic 中,请检查您的 Logback 配置和代码,确保 MDC 值已正确设置,并且 New Relic Agent 正在运行并正确配置。

总结

通过启用 New Relic Agent 的 context_data 转发功能,您可以轻松地将 MDC 上下文值集成到 New Relic 监控平台中。这使得您可以更有效地追踪和调试应用程序中的问题,并利用 New Relic 的强大分析功能来优化应用程序的性能。确保您的配置正确,并验证数据是否已成功记录,以便充分利用这一功能。

以上就是将 MDC 上下文值记录到 New Relic的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号