通过Datadog错误跟踪了解应用程序问题| Datadog

通过Datadog错误跟踪了解应用程序问题

作者Paul Gottschling

上次更新时间:2022年11月11日

当您的应用程序出现错误时,您需要一种方法来理解它们,以便您可以设置优先级,开始故障排除,并衡量您的工作是否成功。错误可能会出现在数千个浏览器会话和运行您的软件的后端主机中,这使得很难在噪音中找到意义。我们很高兴地宣布Datadog错误跟踪现在可用于前端JavaScript以及Android应用程序和所有语言Datadog支持分布式跟踪和APM.

错误跟踪使您能够在更高级别上分析错误,并通过自动将应用程序错误分组为问题。通过跟踪问题和单个错误事件,您可以获得根本原因分析所需的上下文,并减少解决问题的平均时间。错误跟踪建立在您已经使用Datadog监视的数据上,因此您可以开始使用它,而无需进行其他设置。

从错误到问题

当Datadog首次从接收到错误事件时真实用户监控(RUM)或APM,则会创建新问题。然后,它使用该问题对具有类似消息和堆栈跟踪的后续错误进行分组。将错误归纳为一个问题有助于您对任务进行分类,为同事总结问题,并以其他方式保持对未来工作的更清晰理解。错误跟踪还可以将元数据应用于问题,例如错误发生的时间,与单独调查错误相比,它为您提供了更多的上下文。Datadog还可以在发现新问题时通知您的团队,让您相信您的分诊计划是最新的。

错误跟踪从RUM和APM数据中提取错误消息,因此无需配置SDK或修改应用程序代码。

知道首先要修复什么以及如何修复

错误跟踪使您能够获得关于任何问题的更多上下文,以便进行更智能的检测和更快的调查。这个错误跟踪资源管理器该视图显示了Datadog检测到的问题列表,以及每个问题的总错误数和频率等重要聚合。

例如,当您怀疑应用程序错误正在影响下游服务或最终用户时,您会看到用户操作在中RUM浏览器-您可以按时间范围或服务、环境和应用程序版本等方面筛选错误跟踪资源管理器,以快速确定要首先调查的特定问题。每个问题都标有工作流状态(打开或忽略),以帮助团队成员跟踪问题的状态。为了帮助分类对客户影响最广泛的最常见错误,您还可以按发生次数或受影响的用户会话数对问题进行排序。在下面的示例中,我们可以观察到,虽然Android应用程序中的转换错误最常见,但iOS应用程序的支付服务中的错误影响了大多数客户。

错误跟踪错误视图-2.png

如果在错误跟踪资源管理器中单击问题,您将在问题面板中看到有用的元数据。时间序列图显示问题中的错误频率,问题摘要会告诉您是哪个代码版本首先引发错误。此数据既可以指示问题的严重程度,也可以帮助您将问题的发生与其他事件(例如最近的部署)关联起来。

错误跟踪-发布-页面-3.png

例如,如果您正在调查某些浏览器版本不支持的JavaScript功能的问题(例如。,lookbehinds(向后看)),您可以咨询问题小组以检查问题的“首次出现”时间。然后,您可以检查错误频率图,以确定是否应立即进行故障排除,例如,如果自第一次发生以来错误增加了,或者计划稍后进行故障排除。问题面板也有自己的查询工具,因此您可以按视图名称、设备或浏览器等方面过滤错误。“异常值”选项卡会自动显示这些面中的图案,以帮助您快速确定问题的范围。

当需要调查时,您可以通过查看面板顶部的摘要快速确定错误的特征—数据狗会自动解析问题的所有错误消息以获取模式,从而提供综合描述。该面板还显示导致错误的源代码,从而可以直接查找和还原相关的git提交。之后,您可以在错误跟踪资源管理器上保持选项卡,以查看原始问题是否仍在发生,或者是否出现了其他问题。

前台的后端错误

与前端JavaScript错误一样,错误跟踪可以帮助您对后端应用程序中的错误进行分类和调查。错误跟踪使用APM踪迹将具有类似消息和错误类型的错误分组为问题,以便您可以查看后端错误首次出现的时间、上次出现的时间以及其间发生的频率。错误跟踪还会显示错误的堆栈跟踪,以便您知道从代码中的何处开始调查,并通过让您直接导航到查看跟踪这包括错误。您可以立即开始对后端应用程序使用错误跟踪已启用跟踪.

通过将错误分组为问题并显示它们在应用程序源代码中出现的位置,错误跟踪可以帮助您确定可能会被忽视的趋势。在下面的示例中,错误跟踪向我们展示了我们的Ruby on Rails应用程序,网络存储,在中显示峰值支付服务不可用错误本周早些时候的消息。使用堆栈跟踪,我们可以看到购物车控制器#结账方法呈现了引发异常的视图。

错误跟踪可以帮助您了解后端代码中的错误。

然后,我们可以从错误跟踪导航到查看相关的错误跟踪。这个火焰图下面清楚地表明,我们的支付服务中的错误是由于服务API中超出了费率限制而导致的下游错误。

您可以从错误跟踪直接导航到跟踪视图。

由于我们的应用程序不应该用错误消息中断用户的购物体验,因此我们决定使用跟踪搜索和分析查看异常峰值是否与特定类型的用户请求相关。

更清晰的堆栈跟踪

生产应用程序和CDN经常返回缩小的JavaScript到浏览器以减少加载时间。但由于精简的代码存在于一行中,所以它可能会使堆栈跟踪变得毫无用处。即使您能够从堆栈跟踪中找到错误的原因,也需要在JavaScript源文件中找到相应的行。Datadog错误跟踪会自动反转前端JavaScript堆栈跟踪的缩小过程,从而更容易理解为解决问题而应该对源代码进行的更改。

unminify.png

错误跟踪通过使用源地图,表示位置部分缩小后的代码出现在原始源代码中。Datadog使用数据狗ci二元的,我们设计用于在连续集成环境中运行。运行datadog-ci源映射上传命令在构建时自动将源映射目录的内容发送到Datadog。然后,您将能够在问题面板中看到未经改进的源代码。错误跟踪也支持.dSYM分析,因此您也可以轻松查看移动应用程序代码的可读堆栈跟踪。

犯错是人的本性;追踪是犬科动物

Datadog错误跟踪可以让您深入了解应用程序错误,从而更容易解决对用户影响最大的问题。如果您正在使用RUM或APM,错误跟踪将立即开始工作。错误跟踪只是获得应用程序全面的代码级可视性的一种方法。您还可以设置日志管理综合监测、和连续分析器。为了深入了解代码的资源利用率,您可以设置数据狗分析,即使在生产中也能连续运行。如果您正在考虑开始使用Datadog,请注册.