Vue开发者的错误监控介绍

112 阅读4分钟

不幸的是,我们中没有人曾经写过一个100%完美的规模化应用。每一行新的代码都会带来新的机会,让bug悄然而至,造成意外的行为和糟糕的客户体验。

这就是Sentry存在的原因。

screenshot of Sentry homepage

Sentry是一个缺失的环节,它可以让你从现实生活中的网站访问者的肩膀上探出头来,详细了解他们所遇到的真实问题。这对于Vue.js驱动的单页应用程序尤其重要,因为所有的代码都在客户端运行,这意味着一些人可能习惯的服务器日志根本不存在。

但不要被愚弄了,用Sentry监控应用程序是比服务器日志更重要的,我们将在未来几周发布一个新的课程,帮助你学习如何为你的Vue.js应用程序启动和运行Sentry。

你期望在课程中能学到什么?我很高兴你问了这个问题!下面是你可以期待的所有好东西的偷窥。

在Sentry中创建一个项目

首先,我们将学习如何在Sentry中创建一个新的项目,并将其与Vite驱动的Vue.js应用程序相连接。

screenshot of project setup in Sentry

在Sentry中捕获错误

接下来,我们将看看Sentry如何为你的Vue.js应用程序捕捉错误,并以易于消化的格式显示。最重要的是,问题报告包括大量的信息,帮助你追踪错误的原因,了解错误对用户的影响范围,最重要的是,为你指出正确的修复方向。

screenshot of an issue page in sentry

为准确的堆栈跟踪设置源代码图

此外,由于我们大多数人可能在我们的应用程序中使用Vue.js单文件组件,因此,生成源码图并将其发送到Sentry就显得尤为重要。这有助于Sentry显示最准确和最有用的堆栈跟踪。

在本课程中,我们将学习如何利用Vite Sentry插件和适当的Vite配置设置(提示:build.sourcemap: 'hidden' ),以确保每个应用程序的构建都自动发生。

screenshot of source maps on issue in Sentry dashboard

启用发布和可疑的提交

Learn Vue.js 3 With Vue School

除了跟踪错误到它的违规代码,能够跟踪问题到git提交和/或引入它们的应用程序发布版本也很有用。在本课程中,我们还将学习如何为你的Vue.js应用程序设置这些。

screenshot of suspect commit in Sentry

向Sentry传递环境

通常我们的Vue.js应用程序会被部署到多个环境中,如生产和暂存环境。在本课程中,我们将学习如何将这些信息从Vite传递到Sentry。我们还将学习Sentry与我们合作的多种方式,使从所需环境查看问题变得轻而易举。

screenshot of environment filter in Sentry

在正确的时间提醒正确的人

虽然Sentry显示的所有这些信息都很好,但没有人愿意整天坐在Sentry的仪表盘上刷新问题,并把它们分给适当的人或团队来解决。

这就是警报的作用。警报可以由各种与特定问题、性能相关的事件触发,甚至是基于应用程序整体健康状况的指标。此外,你可以通过电子邮件或Slack等途径,以最适合你或你的团队的方式接收警报。

在本课程中,我们将讨论如何将所有这些设置与Vue.js应用程序无缝连接。

screenshot of alert setup in Sentry

监控您的Vue.js应用程序的性能

说了这么多问题和错误,你可能会认为Sentry在那里达到了顶峰,但你就错了。Sentry也为我们的Vue.js应用程序提供了性能监控,其指标很像你在Page Speed Insights或类似网站上看到的。

但最大的区别是,这些报告是基于真实用户的数据(而不是开发人员的机器或模拟环境)。

screenshot of performance metrics in Sentry

此外,你可以根据这些数据设置警报,并在考虑应用程序的整体健康状况时考虑应用程序的性能。

评估发布健康状况

最后,在本课程中,我们将研究Sentry如何帮助我们评估Vue.js应用程序的发布健康状况。窥视一下用户采用率、应用程序的使用情况、崩溃的百分比等等,以了解你的最新版本。

screenshot of release health page in Sentry

总结

Vue.js是一个一流的框架,可以带来出色的开发者体验和企业级应用。但在一天结束时,没有一个应用程序是完美的。我们能做的最好的一步就是了解真正的用户所遇到的问题,从而做出最好的应用程序。Sentry使我们能够做到这一点,Vue学校已经准备好帮助你为你的Vue.js应用启动和运行Sentry

Learn Vue.js 3 With Vue School