简介
嵌入到应用程序中时使用配置 client
的最小 Sentry SDK
。它允许库作者
添加对 Sentry SDK
的支持,而无需捆绑整个 SDK
或依赖于特定平台。简单来说,它是 @sentry/node
或 @sentry/browser
等特定于平台的 SDK 库的公共基础部分。
Sentry JavaScript SDK Minimal
- https://github.com/getsentry/sentry-javascript/tree/master/packages/minimal
用法
要使用 minimal
,您不必初始化 SDK
。这应该由您库的用户处理。而是直接使用 @sentry/minimal
的导出函数添加面包屑或捕获事件:
import * as Sentry from '@sentry/minimal';
// 为未来的事件添加面包屑
Sentry.addBreadcrumb({
message: 'My Breadcrumb',
// ...
});
// 捕获异常、消息或手动事件
Sentry.captureMessage('Hello, world!');
Sentry.captureException(new Error('Good bye'));
Sentry.captureEvent({
message: 'Manual',
stacktrace: [
// ...
],
});
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
请注意,虽然严格可行,但不鼓励干扰事件上下文。如果由于某种原因您的库需要注入上下文信息,请注意这可能会覆盖用户的上下文值:
// 设置用户信息、标签和其他附加信息
Sentry.configureScope(scope => {
scope.setExtra('battery', 0.7);
scope.setTag('user_mode', 'admin');
scope.setUser({ id: '4711' });
// scope.clear();
});
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
测试用例
PASS test/lib/minimal.test.ts
Minimal
✓ Clear Scope (1ms)
✓ returns undefined before binding a client (1ms)
✓ returns the bound client (1ms)
✓ Calls function on the client (1ms)
✓ does not throw an error when pushing different clients (1ms)
✓ does not throw an error when pushing same clients
✓ custom carrier (1ms)
✓ withScope (2ms)
✓ setExtras (1ms)
✓ setTags (1ms)
✓ setExtra (1ms)
✓ setTag
✓ setUser (1ms)
✓ setContext (1ms)
Capture
✓ Return an event_id (4ms)
✓ Exception (1ms)
✓ Exception with explicit scope (1ms)
✓ Message (1ms)
✓ Message with explicit scope (1ms)
✓ Message with custom level (2ms)
✓ Event (1ms)
configureScope
✓ User Context (2ms)
✓ Extra Context (1ms)
✓ Tags Context (1ms)
✓ Fingerprint
✓ Level (1ms)
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.