用途:在项目各服务中遵循 Sentry v8 模式,统一接入错误追踪与性能监控。适用于添加错误处理、创建控制器或路由、为定时任务加埋点、追踪数据库性能、添加性能 span、处理工作流错误。核心规则是所有错误必须捕获到 Sentry,不能只用 console.error,也不能静默吞掉错误。
主要能力:控制器错误通过 BaseController 的 handleError 上报;路由可用 Sentry.captureException 并附加 route、method 标签与用户信息;工作流错误通过 WorkflowSentryHelper.captureWorkflowError 附带 workflowCode、instanceId、stepId、userId 等上下文;定时任务须在 shebang 后首行导入 instrument,并用 Sentry.startSpan 包裹,错误时上报并退出;数据库操作可用 DatabasePerformanceMonitor.withPerformanceTracking 包裹,支持慢查询标记(>100ms)与 N+1 检测;异步操作可用 Sentry.startSpan 追踪。错误级别分为 fatal、error、warning、info、debug;通过 Sentry.withScope 设置 user、service、environment 与 operation 上下文。
使用方式:在服务入口按示例初始化 Sentry(设置 dsn、environment、nodeProfilingIntegration、tracesSampleRate、profilesSampleRate),并配合 config.ini 的 sentry 与 databaseMonitoring 配置。Form 服务提供测试端点如 curl http://localhost:3002/blog-api/api/sentry/test-error 等,Email 服务提供 curl http://localhost:3003/notifications/api/sentry/test-error 等。
限制与注意:不得在错误上下文中暴露敏感数据,不得省略异步错误处理,定时任务不得漏掉首行 instrument 导入;资料中未提供完整安装步骤、依赖版本要求与收费信息。当前 Form 服务已完成集成,Email 服务仍在进行中(第 1-2 阶段完成,22 项任务中的 6 项,剩余 189 处 ErrorLogger.log() 调用)。