如何配置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分钟再查看数据。
快速验证流程
- 给应用发送一个测试500请求
- 到APM -> Traces页面搜索该请求的trace,检查span是否带有
error:true标签 - 标签正确的情况下,等待数分钟后刷新APM Services页面和Error Tracking页面,确认错误数据是否正常展示
内容的提问来源于stack exchange,提问作者praiseHellRaiseDale
相关产品推荐
相关产品推荐

