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

如何配置Datadog将500状态码识别为错误并正确展示?

解决Datadog中500状态码未在APM/Error Tracking展示的问题

核心配置检查与修复步骤

  • 手动标记500请求为trace错误
    Datadog默认不会自动将所有5xx状态码判定为trace错误,需在JS tracer初始化时添加状态码判定逻辑,把500请求对应的span标记为错误:

    const tracer = require('dd-trace').init({
      plugins: false,
      hooks: {
        span: (span) => {
          // 针对Web请求的span做处理
          if (span.type === 'web' && span.meta['http.status_code'] === '500') {
            span.setTag('error', true);
            span.setTag('error.type', 'HttpError');
            span.setTag('error.msg', 'Internal Server Error');
          }
        }
      }
    });
    

    注意:tracer版本需在v0.20及以上才能使用hooks配置。

  • 检查APM错误过滤规则
    进入Datadog控制台APM -> Settings -> Error Tracking,查看是否存在自定义过滤规则排除了500状态码相关错误。如果有包含http.status_code:500的排除条件,直接删除该规则。

  • 验证trace标签完整性
    在APM -> Traces页面找到500请求的trace详情,确认error标签是否被设为true,同时http.status_code标签是否准确为500。若标签缺失,可通过HTTP插件的hooks补全:

    // 启用HTTP插件并添加错误标记逻辑
    tracer.use('http', {
      hooks: {
        request: (span, req, res) => {
          res.on('finish', () => {
            if (res.statusCode === 500) {
              span.setTag('error', true);
            }
          });
        }
      }
    });
    
  • 开启APM Errors同步到Error Tracking
    在Error Tracking设置页面,确认“APM Errors”捕获选项已开启,确保trace中的错误能同步到Error Tracking页面。开启后等待5-10分钟再查看数据。

快速验证流程

  1. 给应用发送一个测试500请求
  2. 到APM -> Traces页面搜索该请求的trace,检查span是否带有error:true标签
  3. 标签正确的情况下,等待数分钟后刷新APM Services页面和Error Tracking页面,确认错误数据是否正常展示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 21:57:05