Sentry 是前端错误监控的首选,但 SaaS、自部署、开源组合三种方案的成本和效果差异巨大。本文从接入成本、隐私控制、告警能力、长期维护四个维度实测对比,帮你选到最适合自己团队的方案。

背景:为什么前端错误监控已经不是可选项
我参与过两个项目的错误监控搭建。一个小程序项目用的是 window.onerror 加自建日志上报,另一个 SaaS 项目上了 Sentry。两个方案的差距大到让我后悔第一个项目没早点搞。
小程序那边,每次用户反馈"白屏了"我都得远程调试、翻日志、猜场景。有一次一个 iOS 15 系统才触发的兼容性 bug 躺了两周才发现,因为自建上报没处理好 SourceMap,堆栈全是压缩代码。
SaaS 项目那边,有次深夜 CI 构建完了半小时,Sentry 告警就发到 Slack:"新版本出现高频 TypeError",附带完整堆栈、设备信息、面包屑。十分钟定位到问题,回滚了那个 commit。第二天用户群风平浪静。
差距不在技术,在于有没有一个开箱即用、打通源码、有告警能力的监控系统。本文结合这两次经验,把当前三种主流方案做了实测对比。
三套方案的核心差异
| 维度 | Sentry SaaS | Sentry 自部署 | 纯开源组合 |
|---|---|---|---|
| 代表方案 | sentry.io 免费/付费 | Docker 部署 Sentry | Plausible + GlitchTip + Grafana |
| 接入成本 | 极低(5 分钟) | 中(需服务器维护) | 高(需自行集成) |
| 隐私控制 | 数据存储在 Sentry 服务器 | 数据在自己服务器 | 完全可控 |
| 告警能力 | 内置 Slack/Discord/PagerDuty | 同 SaaS | 需自己搭建告警链路 |
| 长期维护 | 零维护 | 需升级、备份、监控 | 高维护成本 |
| 成本(5 人团队) | 免费额度够用,付费 $26/月 | 服务器 $10-30/月 | 免费,但时间成本高 |
以下逐一展开。
方案一:Sentry SaaS ------ 五分钟接入,够用很久
接入方式
bash
npm install @sentry/react
typescript
// src/index.tsx
import * as Sentry from '@sentry/react';
Sentry.init({
dsn: 'https://xxx@sentry.io/1',
integrations: [
Sentry.browserTracingIntegration(),
Sentry.replayIntegration({
maskAllText: true,
blockAllMedia: true,
}),
],
tracesSampleRate: 0.1,
replaysSessionSampleRate: 0.01,
replaysOnErrorSampleRate: 1.0,
});
核心能力
- 自动错误捕获:未处理的异常、Promise 拒绝、console.error 都能自动上报。
- SourceMap 还原:配合 Webpack/Vite 插件,构建时自动上传 SourceMap,线上报错直接显示源码。
- Session Replay:报错前后用户操作的"视频回放",排查难以复现的问题极其有效。
- Release 追踪:关联 Git commit,一眼看出是哪个版本引入的新错误。
- 告警通知:支持 Slack、钉钉、邮件等,设置"新错误首次出现"或"关键页面错误激增"等规则。
免费额度
Sentry SaaS 的免费套餐包括:
- 每月 5,000 个错误事件
- 1 个团队项目
- 无限成员
- 90 天数据保留
对于个人项目或小团队,免费额度基本够用。超出后付费版 $26/月起。
局限性
- 数据存储在第三方服务器:如果业务有严格的合规要求(如金融、医疗),SaaS 方案可能过不了安全审计。
- 网络依赖:SDK 需要访问 sentry.io 上报数据,如果用户网络环境受限(企业内部系统),上报可能失败。可以在 SDK 中配置自建代理中转。
方案二:Sentry 自部署 ------ 数据可控,维护有成本
当隐私合规成为硬性要求时,自部署 Sentry 是目前最成熟的方案。Sentry 官方提供了完整的 Docker 部署脚本。
一键部署
bash
git clone https://github.com/getsentry/self-hosted.git
cd self-hosted
./install.sh
docker compose up -d
最低要求:4GB 内存,20GB 磁盘。实测 2C4G 的轻量云服务器可以跑起来,但需要加 swap。小团队使用 Kafka 和 ClickHouse 可以限制内存:
yaml
# docker-compose.yml 中限制资源
kafka:
deploy:
resources:
limits:
memory: 512M
clickhouse:
deploy:
resources:
limits:
memory: 1G
功能与 SaaS 版基本一致
前端 SDK 接入方式完全相同,只需把 dsn 指向自己的域名:
typescript
Sentry.init({
dsn: 'https://xxx@your-sentry.example.com/1',
// 其他配置不变
});
所有 SaaS 版功能(错误聚合、SourceMap、Session Replay、告警、Release 追踪)在自部署版本中全部可用。
维护清单
自部署不是"部署完就忘了"的事,需要定期维护:
- 每月
docker compose pull && docker compose up -d升级版本 - 监控磁盘使用(ClickHouse 数据会持续增长),设置数据保留策略(默认 90 天)
- 备份 PostgreSQL 数据库
- 配置 HTTPS 证书(用 Caddy 或 Nginx 反代)
- 监控 Kafka 和 ClickHouse 的健康状态
如果团队有专门的 DevOps,这些不是大问题。但如果只有一个全栈开发兼运维,这些额外的工作量需要掂量。
方案三:纯开源组合 ------ 完全可控,但折腾
如果你不想用 Sentry(不管 SaaS 还是自部署),也可以基于开源组件搭建。一个常见组合:
| 组件 | 工具 | 作用 |
|---|---|---|
| 错误收集 | GlitchTip | Sentry 的开源替代,兼容 Sentry SDK |
| 性能监控 | Plausible / Umami | 页面性能、Web Vitals |
| 日志聚合 | Loki + Grafana | 后端日志和前端错误统一查询 |
| 告警 | Grafana Alerting | 统一告警规则 |
前端 SDK 可以直接用 @sentry/react,把 DSN 指向 GlitchTip 的服务地址。GlitchTip 兼容 Sentry SDK,所以不需要改代码。
但代价是:
- 需要部署和维护 GlitchTip + Grafana + Loki 三个服务。
- 告警规则需要手动配置,不像 Sentry 那样开箱即用。
- 缺少 Session Replay、Release 追踪等高级功能。
- 整体成熟度不如 Sentry,遇到问题社区资源少。
除非你有一个团队专门做可观测性平台,否则不推荐这条路。性价比远低于前两种方案。
三个方案的最终选择建议
| 场景 | 推荐方案 |
|---|---|
| 个人项目 / 小团队,无合规要求 | Sentry SaaS 免费版 |
| 需要 Session Replay 等高级功能 | Sentry SaaS 付费版 ($26/月) |
| 金融/医疗等强合规场景 | Sentry 自部署 |
| 公司已有 Grafana 生态,不想引入新工具 | Sentry 自部署 + Grafana 数据源 |
| 极客折腾,不差时间 | 纯开源组合(不推荐) |
实际选择:我为什么最终选了 Sentry 自部署
我们团队的情况是:业务有数据合规要求,同时需要 Session Replay 来排查难复现的客户问题。SaaS 版在合规上有点尴尬,纯开源组合缺少 Replay。最终折中选了自部署 Sentry。
上线半年,它的价值集中体现在三次事故中:
- 一个新版本引入了一个只在 iOS 15.4 上触发的兼容性 bug。Sentry 告警 3 分钟后就到了,附带完整堆栈和设备信息。十分钟内定位并回滚。
- 支付页面偶发白屏,没有任何用户投诉。Sentry 的 Session Replay 显示是某个第三方 SDK 加载失败导致 Promise 未处理。修复前已经有 200+ 用户受影响,但没人反馈(用户直接放弃支付)。如果不是 Sentry 自动捕获,这个转化率损失可能要很久之后才能发现。
- 后端接口返回格式变更,前端页面数据渲染异常。Sentry 的 breadcrumbs 完整记录了请求和响应,省去了前后端来回扯皮的时间。
接入后的持续优化
错误监控搭建只是第一步。这半年里我们逐渐补上了几个关键策略:
- SourceMap 上传自动化:CI 构建后自动上传,确保每个版本的报错都有源码映射。
- 自定义上下文:在 Sentry 中手动上报用户 ID、租户 ID、当前页面路由,方便定位具体客户的问题。
- 告警分级:关键页面(支付、登录)的错误 5 分钟内告警到全员;非关键页面的错误每天汇总邮件。
- 错误治理周会:每周花 15 分钟看 Sentry 的错误趋势,修复 Top 3。
你目前用的是什么前端错误监控方案?是否踩过坑?欢迎评论区交流。