Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Sentry 官方 JavaScript SDK 简介与调试指南

Sentry 官方 JavaScript SDK 简介与调试指南

作者头像
为少
发布于 2021-11-23 01:35:53
发布于 2021-11-23 01:35:53
2.8K00
代码可运行
举报
文章被收录于专栏:黑客下午茶黑客下午茶
运行总次数:0
代码可运行

系列

源码仓库地址

https://github.com/getsentry/sentry-javascript

支持的平台

对于每个主要的 JavaScript 平台,都有一个特定的高阶 SDK,可以在单个包中提供您需要的所有工具。有关更多详细信息,请参阅这些 SDK 的 README 和说明:

  • @sentry/browser: 浏览器的 SDK,包括对基础主干(GlobalHandlers, TryCatch, Breadcrumbs, LinkedErrors, UserAgent, Dedupe)的集成。
  • @sentry/node: 适用于 NodeSDK,包括 ExpressKoaLoopbackSailsConnect 的集成。
  • @sentry/angular: 启用 Angular 集成的浏览器 SDK
  • @sentry/react: 启用 React 集成的浏览器 SDK
  • @sentry/ember: 启用 Ember 集成的浏览器 SDK
  • @sentry/vue: 启用 Vue 集成的浏览器 SDK
  • @sentry/gatsby: GatsbySDK
  • @sentry/nextjs: Next.jsSDK
  • @sentry/integrations: 可用于增强 JS SDK 的可插拔集成。
  • @sentry/electron: 支持原生崩溃的 Electron SDK
  • @sentry/react-native: 支持原生崩溃的 React Native SDK
  • @sentry/capacitor:支持原生崩溃的 Capacitor AppIonicSDK
  • sentry-cordova:支持原生崩溃的 Cordova AppSDK
  • raven-js:旧的稳定 JavaScript SDK,我们仍然支持并发布 SDK 的错误修复,但所有新功能都将在 @sentry/browser 中实现,它是继任者。
  • raven:旧的稳定 Node SDK,与 raven-js 一样,我们仍然支持并发布 SDK 的错误修复,但所有新功能都将在 @sentry/node 中实现,它是继任者。

用于平台 SDK 开发的共享软件包

  • @sentry/tracing: 为性能监控/跟踪提供集成扩展
  • @sentry/hub: SDK 的全局状态管理。
  • @sentry/minimal: Sentry 支持的最小 SDK
  • @sentry/core: 具有接口类型定义类的所有 JavaScript SDK 的基础。
  • @sentry/utils: 一组对各种 SDK 有用的辅助程序和实用函数。
  • @sentry/types: 所有软件包中使用的类型定义。

开发调试

设置环境

要运行 test suitecode linter,需要 node.jsyarn

  • https://nodejs.org/download
  • https://yarnpkg.com/en/docs/install

sentry-javascript 是一个包含多个软件包的 monorepo,使用 lerna 管理它们。首先,安装所有依赖项,使用 lerna 引导工作区,然后执行初始构建,以便 TypeScript 可以读取所有链接的类型定义。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yarn
yarn lerna bootstrap
yarn build

这样,repo 就完全设置好了,您可以运行所有命令了。

构建软件包

由于我们使用的是 TypeScript,因此您需要将代码转换为 JavaScript 才能使用它。来自 repo 的顶层,有三个可用命令:

  • yarn build:dev,它运行每个包的 ES5ES6 版本的一次性构建。
  • yarn build:dev:filter <name of npm package>,它只在与给定包相关的项目中运行 yarn build:dev(例如,运行 yarn build:dev:filter @sentry/react 将构建 react 包、它的所有依赖项(utilscorebrowser 等),以及所有依赖它的包(目前是 gatsbynextjs))。
  • yarn build:dev:watch,在 watch 模式下运行 yarn build:dev(推荐)

添加测试

任何重要的修复/功能都应该包括测试。您会在每个软件包中找到一个 test 文件夹。

请注意,仅对于 browser 包,如果您将新文件添加到集成测试套件中,您还需要将其添加到shell.js 中的列表中。在所有包中,向现有文件添加测试都可以开箱即用。

运行测试

运行测试与构建的工作方式相同 - 在项目根目录运行 yarn test 将对所有包运行测试,在特定包中运行 yarn test 将为该包运行测试。还有一些命令可以在每个位置运行测试的子集。查看相应 package.jsonscripts 条目以了解详细信息。

注意:你必须在 yarn test 工作之前运行 yarn build

调试测试

如果您在编写测试时遇到麻烦并需要调试其中之一,您可以使用 VSCodedebugger 来完成。

如果您尚未安装它,请安装 Tasks Shell Input 扩展,您可以在侧边栏的“扩展”选项卡中找到它作为推荐的工作区扩展之一。

  1. 将断点或 debugger 语句放置在测试或底层代码中您希望 jest 暂停的任何位置。
  2. 打开包含相关测试的文件,并确保其选项卡处于活动状态(以便您可以看到文件的内容)。
  3. 切换到侧边栏中的 debugger,然后从下拉列表中选择 Debug unit tests - just open file
  4. 单击绿色的 “play” 按钮以 watch 模式在打开的文件中运行测试。
实战

测试代码:

  • https://github.com/getsentry/sentry-javascript/blob/master/packages/minimal/test/lib/minimal.test.ts

专业提示:如果您的任何断点在由多个测试运行的代码中,并且您运行整个测试文件,您将在不关心的测试中间一遍又一遍地停留在这些断点上。为避免这种情况,请将测试的初始 ittest 替换为 it.onlytest.only。这样,当您遇到断点时,您就会知道您到达了有问题的测试的一部分。

Linting

与构建和测试类似,linting 可以通过调用 yarn lint 在项目根目录或单个包中完成。

注意:你必须在 yarn lint 工作之前运行 yarn build

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 黑客下午茶 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Sentry 开发者贡献指南 - SDK 开发(性能监控:Sentry SDK API 演进)
本文档的目标是将 Sentry SDK 中性能监控功能的演变置于上下文中。我们首先总结了如何将性能监控添加到 Sentry 和 SDK, 然后我们讨论 identified issues(已确定的问题) 吸取的经验教训以及解决这些问题的举措。
为少
2022/01/04
1.5K0
Sentry 开发者贡献指南 - 浏览器 SDK 集成测试
Sentry 的浏览器 SDK 的集成测试在内部使用 Playwright。这些测试在 Chromium、Firefox 和 Webkit 的最新稳定版本上运行。
为少
2022/01/25
8800
Sentry 开发者贡献指南 - 浏览器 SDK 集成测试
vue前端异常监控sentry实践
但是onerror事件无法捕获到网络异常的错误(资源加载失败、图片显示异常等),例如img标签下图片url 404 网络请求异常的时候,onerror无法捕获到异常,此时需要监听unhandledrejection。
CS逍遥剑仙
2019/03/18
5.6K2
Sentry 监控 - Snuba 数据中台架构(SnQL 查询语言简介)
这些查询作为字符串发送到 /:dataset/snql 端点,编码为以下格式的 JSON body:
为少
2021/12/01
1.3K0
Sentry
对于每一个项目,我们都没办法保证代码零BUG,零报错,即便是经历过测试,在上线后也会出现一些你预料不到的问题,而这种情况下,广大的用户其实才是最好的测试者。
刘亦枫
2020/10/29
1.4K0
Sentry
Sentry-JS-SDK-Browser 官方示例最佳实践
SDK 开发 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(理念与设计原则篇) 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(开发基础篇) 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(概述篇) 系列 Snuba:Sentry 新的搜索基础设施(基于 ClickHouse 之上) Sentry 10 K8S 云原生架构探索,Vue App 1 分钟快速接入 Sentry(v20.x)玩转前/后端监控与事件日志大数据分析,使用 Helm 部署到 K8S 集群
为少
2021/05/27
1.6K0
Sentry-JS-SDK-Browser 官方示例最佳实践
Sentry 开发者贡献指南 - JavaScript SDK Minimal
嵌入到应用程序中时使用配置 client 的最小 Sentry SDK。它允许库作者添加对 Sentry SDK 的支持,而无需捆绑整个 SDK 或依赖于特定平台。简单来说,它是 @sentry/node 或 @sentry/browser 等特定于平台的 SDK 库的公共基础部分。
为少
2022/01/25
3570
Sentry 开发者贡献指南 - JavaScript SDK Minimal
Sentry 监控 - Snuba 数据中台架构(Data Model 简介)
本节介绍数据在 Snuba 中的组织方式以及面向用户的数据如何映射到底层数据库(如: Clickhouse)。
为少
2021/10/12
7230
Sentry 监控 - Snuba 数据中台本地开发环境配置实战
如果你本地已经安装了 Docker Desktop 并且已经启动,可以把 cask 'docker' 注释掉。
为少
2021/12/02
8100
Sentry 监控 - Snuba 数据中台本地开发环境配置实战
Sentry(v20.12.1) K8S 云原生架构探索,Sentry JavaScript SDK 三种安装加载方式
Sentry 支持通过 CDN 加载其 JavaScript SDK。通常,我们建议使用 npm 软件包(@sentry/browser)作为 CDN 创建方案,在这些方案中,由于网络问题或广告扩展程序之类的常见扩展,Sentry 无法加载。如果必须使用 CDN,请看看如何使用我们的 JS 加载器延迟加载 Sentry。
为少
2021/05/27
1.3K0
Sentry(v20.12.1) K8S 云原生架构探索,Sentry JavaScript SDK 三种安装加载方式
Sentry 监控 - Snuba 数据中台架构(编写和测试 Snuba 查询)
为了构建 Snuba 查询,第一步是能够知道您应该查询哪个数据集,您应该选择哪些实体以及每个实体的 schema 是什么。
为少
2021/12/01
1K0
Sentry 监控 - Snuba 数据中台架构(编写和测试 Snuba 查询)
Sentry(v20.12.1) K8S 云原生架构探索,1分钟上手 JavaScript 性能监控
通过性能监视,Sentry 可以跟踪您的软件性能,测量吞吐量和延迟等指标,并显示多个系统之间的错误影响。
为少
2021/05/27
6370
Sentry(v20.12.1) K8S 云原生架构探索,1分钟上手 JavaScript 性能监控
Sentry 开发者贡献指南 - Feature Flag
功能 flag 在 Sentry 的代码库中声明。对于自托管用户,这些标志然后通过 sentry.conf.py 进行配置。对于 Sentry 的 SaaS 部署,Flagr 用于在生产中配置标志。
为少
2022/01/25
4510
Sentry 开发者贡献指南 - Feature Flag
Sentry 开发者贡献指南 - SDK 开发(事件负载)
事件是客户端通常通过使用 SDK 发送到 Sentry 服务器的基本数据。事件负载(Event payload)大小限制为 200kb。
为少
2022/01/04
2K0
Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之采样 Transactions
如果您希望 transactions 的 cross-section 均匀,无论您在应用程序中的何处或在什么情况下发生,并且对下文所述的默认继承和优先级行为感到满意,设置统一采样率都是一个不错的选择。
为少
2021/05/27
1.3K0
Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之采样 Transactions
Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之管理 Transactions
@sentry/tracing 包提供了一个 BrowserTracing 集成,以添加 automatic instrumentation 来监视浏览器应用程序的性能。
为少
2021/05/27
9670
Sentry(v20.12.1) K8S 云原生架构探索,JavaScript 性能监控之管理 Transactions
Sentry(v20.12.1) K8S 云原生架构探索,SENTRY FOR JAVASCRIPT 故障排除
如果您需要有关 Sentry JavaScript SDK 集成的解决 issues 的帮助,则可以阅读此处记录的一些案例。如果您需要其他帮助,则可以查看我们的论坛,付费计划的客户也可以与客户支持人员联系。
为少
2021/05/27
1.8K0
Sentry(v20.12.1) K8S 云原生架构探索,SENTRY FOR JAVASCRIPT 故障排除
Sentry 开发者贡献指南 - SDK 开发(性能监控)
通过设置两个新的 SDK 配置选项之一来启用跟踪,tracesSampleRate 和 tracesSampler。如果未设置,则两者都默认为 undefined,从而选择如何加入跟踪。
为少
2021/12/28
1.5K0
Sentry SDK 开销测量(Benchmark)
Sentry SDK Benchmark 提供了一组以不同编程语言和不同框架实现的预打包 Web 应用程序。
为少
2022/01/25
7870
Sentry SDK 开销测量(Benchmark)
Sentry Web 前端监控 - 最佳实践(官方教程)
注意:如果您的帐户中没有项目 --- 您可能会被重定向到入门向导以创建您的第一个项目。
为少
2021/10/12
5.2K0
推荐阅读
相关推荐
Sentry 开发者贡献指南 - SDK 开发(性能监控:Sentry SDK API 演进)
更多 >
交个朋友
加入云原生工作实战群
云原生落地实践 技术难题攻坚探讨
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
加入腾讯云技术交流站
洞悉AI新动向 Get大咖技术交流群
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验