本文不涉及 Sentry 平台搭建流程,只介绍在项目中如何切换至新版本
Sentry v9.0.0 -> Sentry v23.6.2
为什么使用新版 Sentry
每周都有统计 Sentry 问题的需求,但是在旧版的 Senrty 中没有看板页面,不能统一查看所有项目问题,不太方便
新版 Sentry 解决了这个问题,在侧边的 Issues 模块下,汇总了当前用户所有项目的问题,且可以通过条件过滤自己想要查看的问题
升级改动
数据上报配置
Sentry 平台
- 创建项目,会自动生成对应项目的 DSN(客户端密钥)
项目
- 修改上报的 DSN,CI 中配置 token、url、org
- token:可以为最高权限用户 token,如果需要更细粒度的区分组别和项目,可以再使用对应用户的 token
- url:新 Sentry 项目的域名
- org:组织设置中的名称
- 修改使用的上报库:@sentry/react(react 项目使用)
- 可选配置
- 性能:在 Sentry.init() 初始化的
integrations
参数中,增加[new Sentry.BrowserTracing()]
,并按需设置采样率参数tracesSampleRate
,即可使用 Sentry 中的性能分析功能(这个功能比较实用,可以查看生产环境中的实际性能,更多使用方法可以查看官方文档)
- 性能:在 Sentry.init() 初始化的
告警配置
简单的项目问题的告警流程为:
graph TB
A(项目数据) -- 上报 --> B[Sentry 平台]
B[Sentry 平台] -- WebHooks --> C[钉钉,企业微信等通信软件]
C[钉钉,企业微信等通信软件] -- 消息提示--> e(结束)
新版本 Senrty 中需要给每个项目创建对应的 Alert 规则,才能捕获错误,并通过 WebHooks 发送
Sentry 平台
- 开启集成中的 WebHooks,填写对应 Callback URLs 地址
- 创建上报告警规则
- 在项目右侧点击 Create Alert,或者直接在侧边的 Alerts 中打开(然后选择 Create Alert)
- 进入后默认会选中创建 issues,直接点击 Set Conditions
- 选中内容
- When:不选,默认满足 when 条件,也就是说,所有的问题都会满足这个条件
- If :不选
- Then:触发后的动作,选择最后一个,默认发送 webhooks
- 设置执行速率限制 5 min(最小值)
- Sentry 只执行在速率限制期限内尚未针对该问题执行的动作。例如,如果一个问题在一分钟的时间内多次满足警报条件,但是您的频率阈值是一分钟,那么你只会收到一次警报。
项目
- 项目上报修改,captureException 中需传入 Error 的实例,才可以在 Sentry issue 内容的标题中展示对应的问题,否则为
<unknown>
- 也可以使用 captureMessage 直接上报字符串