把门店小程序/官网的报错送进 Sentry:DSN 一贴就能跑
你想盯住「前端报错 + 接口异常 + 性能慢」,Sentry 用起来就三件事:建项目拿 DSN、接入 SDK、配告警。
在 Sentry 控制台创建 JavaScript 项目后,会看到一段 DSN(长得像 https://xxx.ingest.sentry.io/xxx)。把它放到前端初始化里即可:
- 官网/H5:在入口文件初始化 Sentry,设置 environment=prod、release=版本号
- 门店小程序(webview/小程序前端):能跑 JS 的页面就能接;重点是给每次发布一个 release,方便回溯
小建议:release 用「应用名+日期+构建号」,比如 store-h5@2026.04.12+15,后面排查会省一半时间。
想看到“哪一行代码炸了”:Source Map 必配
没有 Source Map,Sentry 里通常只剩一堆压缩后的函数名,定位非常痛苦。把 sourcemap 上传到 Sentry 后,报错能直接映射到源码行号。
- 构建时生成 sourcemap(vite/webpack 默认都能开)
- 用 sentry-cli 或构建插件在 CI 里上传,并绑定到同一个 release
- 上传成功后,随便点一条历史报错,看堆栈能不能跳到源码文件
真实场景:某门店活动页白屏,没 sourcemap 只能猜;配好后直接定位到「某个组件在 iOS 低版本 JSON.parse 崩溃」,10 分钟修完上线。
告警怎么配才“有用”:报错、接口、性能分开打
Sentry 的 Alerts 里建议按业务拆 3 类规则,避免一响就麻木。
1)前端报错(Issues Alert)
- 条件示例:5 分钟内同一错误 ≥ 10 次 或影响用户 ≥ 20
- 过滤建议:把已知的第三方脚本错误、浏览器插件噪音加到 ignore
2)接口异常(抓 fetch/axios)
- 在前端对 axios/fetch 做拦截:HTTP 码 ≥ 500、超时、返回结构不合法时,手动 capture
- 事件里带上门店ID、用户ID(脱敏)、接口路径,排查会快很多
例子:支付回调接口偶发 502,前端把 request_id 一并上报,后端日志一搜就能对上。
3)性能慢(Performance Alert)
- 条件示例:页面加载事务 p95 > 3s 连续 10 分钟
- 或者 Apdex < 0.8(体验明显变差)就提醒
钉钉/企微通知
在 Sentry 的 Integrations 里添加 Webhook(钉钉群机器人/企微群机器人),把告警推到「门店技术群」。信息里至少包含:错误名、release、影响人数、链接,别只发一句“出错了”。
你今天就能照做的配置清单
- 把所有线上环境都统一成 prod,并强制每次发布写 release
- CI 里加 sourcemap 上传,发布后抽查 1 条报错堆栈是否可读
- 告警阈值从小到大调:先用「5 分钟 10 次」跑一周,再按噪音量微调
- 钉钉/企微群里加一条规则:收到告警后 15 分钟内要有人认领并回复链接