系列
SDK 开发
- 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(理念与设计原则篇)
- 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(开发基础篇)
- 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(概述篇)
- 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(Unified API篇)
系列
- Snuba:Sentry 新的搜索基础设施(基于 ClickHouse 之上)
- Sentry 10 K8S 云原生架构探索,Vue App 1 分钟快速接入
- Sentry(v20.x)玩转前/后端监控与事件日志大数据分析,使用 Helm 部署到 K8S 集群
- Sentry(v20.x) JavaScript SDK 三种安装加载方式
- Sentry(v20.x) JavaScript SDK 配置详解
- Sentry(v20.x) JavaScript SDK 手动捕获事件基本用法
- Sentry(v20.x) JavaScript SDK Source Maps详解
- Sentry(v20.x) JavaScript SDK 故障排除
- Sentry(v20.x) JavaScript SDK 1分钟上手性能监控
- Sentry(v20.x) JavaScript SDK 性能监控之管理 Transactions
- Sentry(v20.x) JavaScript SDK 性能监控之采样 Transactions
- Sentry(v20.x) JavaScript SDK Enriching Events(丰富事件信息)
- Sentry(v20.x) JavaScript SDK Data Management(问题分组篇)
Sentry-Javascript
@sentry/browser
相关示例
denyUrls
allowUrls
ignoreError message
ignoreError type
regularException
captureException
captureMessage
duplicated exception
duplicated message
integration
event hints
breadcrumb hints
实践
快速运行示例
yarn
yarn build
cd packages/browser/examples/
python -m SimpleHTTPServer
访问:http://localhost:8000/

示例配置详解
Sentry.init({
dsn: 'https://363a337c11a64611be4845ad6e24f3ac@sentry.io/297378',
ignoreErrors: [/PickleRick_\d\d/, 'RangeError'],
denyUrls: ['external-lib.js'],
allowUrls: ['http://localhost:5000', 'https://browser.sentry-cdn'],
debug: true,
enabled: true,
integrations(integrations) {
return [new HappyIntegration(), ...integrations];
},
release: '1537345109360',
environment: 'staging',
transport: HappyTransport,
async beforeSend(event, hint) {
if (hint.originalException.name === 'CustomError') {
const serverData = await hint.originalException.someMethodAttachedToOurCustomError();
event.extra = {
...event.extra,
serverData,
};
}
console.log(event);
return event;
},
beforeBreadcrumb(breadcrumb, hint) {
if (breadcrumb.message.startsWith('Sentry Logger')) return null;
if (breadcrumb.category !== 'ui.click' || hint.event.target.id !== 'breadcrumb-hint') return null;
if (breadcrumb.category === 'ui.click') {
const label = hint.event.target.dataset.label;
if (label) {
breadcrumb.message = `User clicked on a button with label "${label}"`;
}
}
console.log(breadcrumb);
return breadcrumb;
},
});
dsn:客户端的DSN
ignoreErrors:字符串或正则表达式数组,用于根据其 type/message 忽略特定错误
denyUrls:字符串或正则表达式数组,将用于根据 origin url 忽略特定错误
allowUrls:字符串或正则表达式数组,将用于允许基于其 origin url 的特定错误
debug:使用有价值的初始化(initialization)/生命周期(lifecycle)信息的调试模式
enabled:是否应该启用 SDK
integrations:自定义集成回调
release:发布版本标识符
environment:发布环境标识符
transport:自定义事件传输,将用于将事物发送到 Sentry
beforeSend:针对每个捕获的事件调用的方法
beforeBreadcrumb:针对每个捕获的面包屑调用的方法
我是为少
微信:uuhells123
公众号:黑客下午茶
加我微信(互相学习交流),关注公众号(获取更多学习资料~)