用途:该技能用于在项目各服务中统一接入 Sentry v8 的错误追踪与性能监控,适用于添加错误处理、创建控制器或路由、为定时任务埋点、追踪数据库性能、添加性能 span 以及处理工作流错误等场景。核心规则是所有错误都必须上报 Sentry,不得仅使用 console.error,也不得静默吞掉错误。
主要能力:提供控制器错误处理(继承 BaseController 并调用 handleError)、路由错误处理(Sentry.captureException 并附带 tags 与 extra)、工作流错误处理(WorkflowSentryHelper.captureWorkflowError)、定时任务强制模式(首行导入 instrument.ts,用 Sentry.startSpan 包裹并捕获异常)、数据库性能监控(DatabasePerformanceMonitor.withPerformanceTracking)以及异步操作 span。错误级别分为 fatal、error、warning、info、debug。上报时建议通过 Sentry.withScope 附带用户、服务、环境及操作上下文。
使用方式:在服务入口的 instrument.ts 中调用 Sentry.init,配置 dsn、environment、nodeProfilingIntegration、tracesSampleRate 与 profilesSampleRate;配置可写在 config.ini 的 [sentry] 与 [databaseMonitoring] 段。定时任务必须在 shebang 后首行导入 instrument.ts。可通过测试端点(如 curl http://localhost:3002/blog-api/api/sentry/test-error)验证集成。
适用场景与限制:适合 Node.js 服务(表单服务、邮件服务等)的 Sentry 集成。资料显示表单服务已完成集成,邮件服务仍在进行中(22 项任务完成 6 项,剩余 189 处 ErrorLogger.log() 调用)。要求所有 API 端点具备事务追踪,数据库查询超过 100ms 会被标记,并检测 N+1 查询。需避免在错误上下文中暴露敏感数据。具体部署环境与版本兼容性暂未提供。