SuperAPI AI 工具集

sentry-known-pitfalls

部署与运维

查看项目

更新于 10-15 23:29

技能介绍

用途:该技能面向已接入 Sentry 的 JavaScript/TypeScript 项目,帮助定位并修复 10 类生产级反模式,避免错误追踪静默失效、成本飙升或团队对故障无感知。每条陷阱包含错误写法、根因与可直接落地的修复方案。

前提条件:已启用的 Sentry 项目,使用 @sentry/node 或 @sentry/browser 8.x 及以上;可访问包含 Sentry.init() 的代码库;具备环境变量管理方式(.env、密钥管理或 CI/CD 变量)。

覆盖的 10 类陷阱:1) 源码中硬编码 DSN;2) 生产环境 sampleRate 为 1.0;3) 无服务器/CLI 场景未调用 flush();4) beforeSend 对所有事件返回 null 或漏掉 return event 导致全部丢弃;5) SDK 与 sentry-cli 的 release 版本号不一致导致 source map 失效;6) 捕获错误后未重新抛出;7) 缺失 environment 标签;8) 在浏览器包中导入 @sentry/node;9) 忽略 429 限流;10) 未配置告警规则。

使用方式:先用 grep 扫描现有陷阱,例如查找硬编码 DSN:grep -rn "ingest\.sentry\.io" --include=".ts" --include=".js" src/;查找 100% 采样:grep -rn "sampleRate.1\.0" ...;查找是否调用 flush:grep -rn "Sentry\.flush\|Sentry\.close" ...;查找错误导入:grep -rn "@sentry/node" --include=".tsx" --include="*.jsx" src/。随后按优先级修复:Pitfall 1(安全)> Pitfall 3(数据丢失)> Pitfall 10(告警),并建议增加 DSN 的 CI 拦截门禁防回归。

适用场景:审计现有 Sentry 集成、排查 Lambda 无错误上报、source map 堆栈仍为压缩代码等。限制:依赖 Sentry 8.x 及以上环境;示例中的具体成本数值与固定限流策略属于资料自带的示例说明,实际效果因项目流量和配额而异;扩展代码样例与审计脚本等其他材料在原文中另行引用。