OpenTelemetry对接New Relic日志异常:栈追踪缺失等问题排查
切换OpenTelemetry Java Agent后New Relic日志异常问题
背景说明
为避免厂商锁定,已将服务从New Relic Java Agent切换至OpenTelemetry(opentelemetry-javaagent.jar),但切换后发现New Relic中的服务日志与本地运行时存在显著差异,面临一系列问题。
遇到的问题
- 缺失异常栈追踪:New Relic中的错误日志不含栈追踪和错误行号,调试困难;
- 日志结构不同:New Relic日志与本地终端日志格式完全不同;
- 部分错误日志丢失:本地出现的部分错误日志未在New Relic中显示;
- 添加OpenTelemetry Logback Appender无效果:已按官方指南添加Maven依赖并配置Appender,但日志在添加前已能发送至New Relic,且未解决缺失字段问题。
已尝试的操作
- 设置环境变量
OTEL_JAVAAGENT_LOGGING=application,确保OpenTelemetry使用现有Logback配置; - 确认
logback-spring.xml中使用LogstashEncoder输出结构化JSON日志; - 设置环境变量
OTEL_LOGS_INCLUDE_EXCEPTION_STACKTRACE=true,但栈追踪仍未出现在New Relic日志中; - 使用NRQL查询New Relic日志,确认部分错误日志仍未被采集。
疑问
- 为何New Relic日志与本地日志结构不同?
- 为何错误发生时New Relic日志仍缺失栈追踪?
- 是否需要显式配置OpenTelemetry以捕获并转发栈追踪?具体如何配置?
- OpenTelemetry Logback Appender是否为日志发送至New Relic的必需组件?还是OpenTelemetry通过其他方式自动采集日志?
额外需求
使用Spring Logback配合OpenTelemetry Java Agent时,能否配置为New Relic日志添加额外信息?
附:当前New Relic日志结构、核心代码、Maven依赖、Docker配置及logback-spring.xml配置。
内容的提问来源于stack exchange,提问作者PBA
相关产品推荐
相关产品推荐

