故障排除
编辑故障排除
编辑应用程序中的一些错误似乎源于代理的 JavaScript 文件
编辑在某些情况下,当您查看错误的堆栈跟踪时,它似乎源于代理的 JavaScript 文件。但是,由于我们需要修补一些浏览器 API 才能提供代理的一些核心功能,因此我们的 JavaScript 文件会出现在错误堆栈跟踪中。通常,错误是由应用程序的另一部分生成的,您可以进一步跟踪堆栈以识别有问题的代码。
当然,也可能存在由代理本身引起的错误,如果您能将这些错误报告给我们,我们将不胜感激。
应用程序中的一些错误仅显示script error
编辑在某些情况下,当您查看错误的详细信息时,您所能看到的唯一信息是消息Script error
。当错误源于与页面来源不同的来源提供的 JavaScript 文件时,就会发生这种情况。
为了查看错误的详细信息,您必须执行以下两项操作。
-
将属性
crossorigin
添加到<script>
元素<script src="https://example.com/example.js" crossorigin>
-
确保服务器在提供 JavaScript 文件时包含
Access-Control-Allow-Origin
标头。// Either of the two values is valid: Access-Control-Allow-Origin: * Access-Control-Allow-Origin: your page's origin
Access-Control-Allow-Origin: *
在某些浏览器(例如Chrome)中不会匹配localhost
,当配置正确时,这会导致在本地开发环境中出现Script error
消息。
要了解有关浏览器如何处理脚本错误的更多信息,请参阅 MDN 关于onerror事件的页面。
Span 详情视图中没有堆栈跟踪
编辑由于与收集堆栈信息相关的性能问题,RUM JS 代理不支持 Span 的堆栈跟踪。
调试
编辑为了调试代理,请考虑执行以下步骤
- 将
logLevel: 'debug'
添加到代理配置 - 重新加载应用程序
- 页面加载后至少等待 5 秒
- 监控浏览器开发者工具中的控制台和网络面板
禁用事件有效负载压缩
编辑在 Chrome 等浏览器中,RUM 代理事件有效负载使用 gzip 压缩。由于这种压缩,当使用浏览器开发者工具的网络面板检查事件时,您将看不到可读的内容。
在某些情况下,这可能会成为问题。例如,HAR 文件不会显示可读信息。因此,将无法为调试目的检查事件。
有两种方法可以禁用有效负载压缩
- 使用 sessionStorage 浏览器 API 创建名为
_elastic_inspect_beacon_
的项目。 - 使用 URL 中的查询参数
_elastic_inspect_beacon_
加载网页。例如,https://elastic.ac.cn?_elastic_inspect_beacon_=true
此效果将持续到关闭标签页或浏览器。
禁用代理
编辑如果代理不太可能导致生产应用程序中断,您可以在进行故障排除时禁用代理。
要禁用代理,请将active
设置为false
。
联系我们
编辑如有任何疑问,请在Elastic APM 讨论论坛中创建一个新主题。
对于错误报告和功能请求,请在此处创建一个问题,我们的github 代码库并包含尽可能多的信息。请参阅调试,了解如何收集调试信息。