
本文旨在指导开发者如何配置 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)
以下是一个示例 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>在这个配置中:
注意事项
总结
通过启用 New Relic Agent 的 context_data 转发功能,您可以轻松地将 MDC 上下文值集成到 New Relic 监控平台中。这使得您可以更有效地追踪和调试应用程序中的问题,并利用 New Relic 的强大分析功能来优化应用程序的性能。确保您的配置正确,并验证数据是否已成功记录,以便充分利用这一功能。
以上就是将 MDC 上下文值记录到 New Relic的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号