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

如何将NestJS对接New Relic实现预发/生产环境错误上报?

解决NestJS下通过winston链路上报错误到New Relic的方案

前置校验

  • 确认你已经在项目根目录放置了newrelic.js配置文件,或者通过环境变量配置了NEW_RELIC_LICENSE_KEY、NEW_RELIC_APP_NAME两个必填参数,这是上报数据的身份凭证,缺省会直接导致上报失败。
    特别注意:newrelic-winston和winston存在严格的版本适配关系,newrelic-winston@2.x仅支持winston@3.x,如果你使用的是winston@2.x请降级到newrelic-winston@1.x,否则会出现传输器初始化失败的问题

正确配置nest-winston的New Relic传输器

你需要将newrelic-winston的传输器添加到nest-winston的传输数组中,仅配置控制台传输器不会触发数据上报,参考配置如下:

import { Module } from '@nestjs/common';
import { WinstonModule } from 'nest-winston';
import * as winston from 'winston';
// 该包暂不支持ES模块默认导入,使用require引入即可
const NewRelicWinston = require('newrelic-winston');

@Module({
  imports: [
    WinstonModule.forRoot({
      levels: winston.config.npm.levels,
      format: winston.format.combine(
        winston.format.timestamp(),
        winston.format.json()
      ),
      transports: [
        // 保留原有的控制台输出传输器
        new winston.transports.Console({
          level: 'silly',
        }),
        // 新增New Relic上报传输器
        new NewRelicWinston({
          // 仅上报error级别日志,可根据需求调整为info等更低级别
          level: 'error',
          licenseKey: process.env.NEW_RELIC_LICENSE_KEY,
          appName: process.env.NEW_RELIC_APP_NAME,
          // 开启后会自动附带错误堆栈信息上报
          addErrorTrace: true,
        })
      ]
    })
  ]
})
export class AppModule {}

上报效果验证

  • 配置完成后主动抛出测试错误验证,比如在任意业务接口中执行throw new Error('测试上报到New Relic的错误')
  • New Relic数据上报存在1-3分钟的延迟,等待后进入New Relic控制台,在Logs菜单下筛选对应应用名即可查看上报的错误日志
  • 若仍看不到数据,可添加环境变量NEW_RELIC_LOG_LEVEL=debug开启New Relic debug日志,启动项目后排查控制台输出的报错,常见问题为鉴权失败、出口网络限制

常见问题排查

  • 如果你自定义了全局异常过滤器,需要确保捕获错误后调用了logger.error()方法打印错误,仅返回响应不打印日志不会触发传输器上报
  • 预发/生产环境如果配置了出口网络限制,需要放开New Relic上报域名的访问权限,国内环境建议配置亚太区域上报端点,在newrelic.js中添加host: 'log-api.ap-southeast-1.newrelic.com'即可
  • 配置winston格式化规则时,不要过滤掉错误对象的stack属性,否则上报的错误不会附带堆栈信息

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:15:10