Sentry开发者贡献指南-什么是Scope,什么是Hub?

什么是 Scope, 什么是 Hub?

您可以将 hub 视为我们的 SDK 用于将事件路由到 Sentry 的中心点。当您调用 init() 时,会创建一个 hub,并在其上创建一个 client 和一个空白 scope。然后该 hub 与当前线程相关联,并将在内部保存 scope 堆栈。

创新互联建站长期为上1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为闽清企业提供专业的成都网站设计、成都网站建设,闽清网站改版等技术服务。拥有10多年丰富建站经验和众多成功案例,为您定制开发。

scope 将保存应与事件一起发送的有用信息。例如context(上下文)或breadcrumbs(面包屑)存储在 scope 内。当一个 scope 被 push 时,它从父 scope 继承所有数据,当它 pop 时,所有修改都被还原。

https://docs.sentry.io/platforms/javascript/enriching-events/context/

https://docs.sentry.io/platforms/javascript/enriching-events/breadcrumbs/

默认的 SDK 集成将智能地 push 和 pop scope。例如,Web 框架集成将围绕您的路由或控制器创建和销毁 scope。

Scope 和 Hub 的工作原理

当您开始使用 SDK 时,会自动为您创建一个开箱即用的 scope 和 hub。除非您正在编写integration(集成)或想要创建或销毁 scope,否则您不太可能直接与 hub 交互。另一方面,scope 更面向用户。您可以随时调用 configure-scope 来修改存储在 scope 上的数据。例如,这用于修改上下文。

https://docs.sentry.io/platforms/javascript/enriching-events/context/

配置 Scope

使用 scope 时最有用的操作是 configure-scope 函数。它可用于重新配置当前 scope。

您首先需要像往常一样导入 SDK:

import * as Sentry from "@sentry/browser";

例如,您可以添加自定义 tag 或通知 Sentry 当前已通过身份验证的用户。

Sentry.configureScope(function(scope) {
scope.setTag("my-tag", "my value");
scope.setUser({
id: 42,
email: "john.doe@example.com",
});
});

在注销用户时取消设置,也可以应用此配置:

Sentry.configureScope(scope => scope.setUser(null));

要了解哪些有用信息可以与 scope 关联,请参阅上下文文档。

https://docs.sentry.io/platforms/javascript/enriching-events/context/

局部 Scope

我们还支持一次性推送和配置 scope。这通常称为 with-scope 或 push-scope,如果您只想发送具有一个特定事件的数据,这也非常有用。在以下示例中,我们使用该函数将 level 和 tag 附加到仅一个特定错误:

Sentry.withScope(function(scope) {
scope.setTag("my-tag", "my value");
scope.setLevel("warning");
// will be tagged with my-tag="my value"
Sentry.captureException(new Error("my error"));
});

// will not be tagged with my-tag
Sentry.captureException(new Error("my other error"));

虽然这个例子看起来与 configure-scope 很相似,但它有很大的不同,因为 configure-scope 实际上改变了当前的活动 scope,所有对 configure-scope 的后续调用都会保留这些变化。

另一方面,使用 with-scope 会创建当前 scope 的克隆,并将保持隔离,直到函数调用完成。因此,您可以在其中设置您不想在其他地方的上下文信息,或者通过在 scope 上调用 clear 来完全不附加任何上下文信息,而“global(全局)” scope 保持不变。

请记住,with-scope 不会捕获在其回调函数中发生的任何异常,并且在那里发生的每个错误都将被静默忽略而不报告。

网站题目:Sentry开发者贡献指南-什么是Scope,什么是Hub?
本文地址:http://www.shufengxianlan.com/qtweb/news16/264216.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联