用途:帮助团队在 Sentry 中捕获错误并附加上下文,快速定位生产问题。覆盖 captureException、captureMessage、作用域上下文(withScope / push_scope)、面包屑、自定义指纹与 beforeSend 过滤,基于 @sentry/node v8 与 sentry-sdk v2 API。
前提:已安装并初始化 Sentry SDK(@sentry/node v8+ 或 sentry-sdk v2+);通过环境变量 SENTRY_DSN 配置 DSN;了解 try/catch(JS)或 try/except(Python);已在 sentry.io 创建项目。
主要能力:捕获异常时保留完整堆栈(应传 Error 对象,而非纯字符串);用 captureMessage 记录非异常事件并指定级别;用 withScope / push_scope 为单个事件附加用户、标签、结构化上下文、额外数据、级别与指纹,退出后自动清理;手动 addBreadcrumb 补充用户旅程;用 setFingerprint 控制问题分组,可用 {{ default }} 扩展默认分组;在 Sentry.init 中通过 beforeSend 丢弃噪声、擦除敏感头并全局增强事件,配合 ignoreErrors 过滤。
使用方式:异常路径调用 Sentry.captureException(error) 或 sentry_sdk.capture_exception(e);在 withScope 中设置 setUser、setTag、setContext、setExtra、setLevel、setFingerprint 后再捕获;非异常事件用 captureMessage 指定级别;初始化时配置 beforeSend,注意必须返回 event 或 null。
限制与注意:传字符串会丢失堆栈;beforeSend 返回 undefined 会导致事件全部丢弃;全局作用域在异步上下文中可能泄漏,应按请求使用作用域;结构化数据应使用 setContext 而非 setExtra 才能在侧栏显示;事件量过大需配置 ignoreErrors、beforeSend 或 sampleRate;资料未提供具体价格与配额信息。