Sentry是一个流行的错误跟踪平台,可让您实时了解生产环境中的问题。GitLab 的错误报告功能可让您将 Sentry 报告带入源代码控制平台,提供统一的 Sentry 错误和 GitLab 问题的集中视图。
该功能最初依赖于与现有Sentry 服务(官方 Sentry.io 或您自己的自托管服务器)的集成。GitLab 14.4 改变了这种情况,它为 GitLab 本身添加了一个轻量级的Sentry 兼容后端。您不再需要实际安装 Sentry 即可将错误报告输入 GitLab。
以下是如何开始使用集成的 Sentry 后端。在我们继续之前,值得一提的是,如果您已经熟悉 Sentry 仪表板,则此功能可能不适合您。GitLab 的后端是一个准系统解决方案,它将错误显示为一个简单的列表。它最适合您不希望管理单独的 Sentry 项目开销的小型应用程序。
在 GitLab.com 或您自己的 GitLab 服务器上创建一个新项目。导航到项目侧栏中的设置 > 监视器,然后展开“错误跟踪”部分。启用“启用错误跟踪”下的复选框。确保“错误跟踪后端”单选按钮设置为“GitLab”。按蓝色的“保存更改”按钮继续。
页面将重新加载。现在您可以再次展开“错误跟踪”部分以显示您的 DSN 字符串。此 URL 用于配置您的 Sentry 客户端库以将事件发送到 GitLab 服务器。
现在您可以将 Sentry 添加到您的代码中。这是一个使用 Node.js 的官方 Sentry 客户端库的基本示例。您可以通过运行来安装包npm install @sentry/node。所有可用客户端的文档都可以从 Sentry获得。
const sentry = require("@sentry/node");
sentry.init({
dsn: "https://glet_abc123@gitlab.example.com/api/v4/error_tracking/collector/1"
});
将 DSN 值替换为您从 GitLab UI 复制的字符串。之前的部分@是允许访问 GitLab 服务器的特殊身份验证令牌。其余部分由项目的唯一错误跟踪摄取 API 端点组成。
一旦配置了 DSN,官方 Sentry 客户端库就会开始捕获未处理的错误。如果以下任何代码引发了您未捕获的错误,则该事件将报告给您的 GitLab 服务器。
您可以通过手动捕获事件来测试集成。这是一个创建和报告Error实例的示例:
Sentry.captureException(new Error("Sentry test"));
使用 GitLab Web UI 中项目的侧边栏导航到 Monitor > Error Tracking 页面。您捕获的错误应该显示在列表中。单击其条目以查看完整的报告和堆栈跟踪。
可以使用右上角的蓝色“创建问题”按钮从报告中创建 GitLab 问题。这使您可以将补救工作分配给团队成员并开始讨论问题。该问题将保留指向错误报告的链接,并且堆栈跟踪将显示在问题描述下方。
修复问题后,使用错误跟踪页面将其标记为已解决。如果您不打算修复问题,也可以忽略这些问题,可能是因为它们是暂时的或由过时的客户端记录。
GitLab 的集成 Sentry 后端目前适用于部署 Sentry 被认为过于复杂或不必要的小规模情况。完整的 Sentry 平台是一个广泛的系统,需要时间来配置和维护。GitLab 的集成是项目设置中的一个复选框,但这种简单性是有代价的。
错误跟踪列表是您查看报告的唯一视图。您目前无法绘制它们、查看报告量随时间的变化或按单个用户或客户进行过滤。Sentry UI 显示的详细信息,例如浏览器和服务器数据,当前不受支持或出现在 GitLab 的任何地方。
您还应该知道 GitLab 还不能发送电子邮件以获取新的错误报告。您必须手动监控错误跟踪页面,以领先于部署生成的事件。
由于 GitLab 实现了 Sentry API 的核心功能,它与大多数主要的 SDK 和客户端库兼容。从 GitLab 14.5 开始,已确认可与 Ruby、JavaScript、Java 和 Python 一起使用;其他语言要么有部分支持,要么将在未来的 GitLab 版本中添加。
GitLab 的 Sentry 后端提供了一种简单的方法来从您的应用程序中捕获错误报告并将它们与您的代码一起存储。尽管它目前的限制使它不适用于除了最简单的用例之外的所有用例,但对于不需要完整 Sentry 服务的复杂性的小型站点和个人项目来说,它仍然是一个令人信服的选择。
在测试 Sentry 与您的代码的集成时,集成的后端也很有用。如果您正在设置新客户端或修改现有客户端的设置,您可以使用 GitLab 服务器作为临时后端,这样您就不会污染您的主要 Sentry 部署。
GitLab 的错误跟踪组件仍在开发中,并将在后续里程碑中进行扩展。这应该会看到它演变成一个更成熟的选项,可以在更广泛的环境中取代独立的 Sentry。
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/wlcs_6305/article/details/122883990
内容来源于网络,如有侵权,请联系作者删除!