本文解答了关于前端监控的常见问题。
本页目录
- 为什么有些监控页面或API名称中出现了星号(*)?
- 为什么页面访问量列表和页面访问速度列表不一致?
- 为什么API日志中没有生成TraceId,导致无法跳转至对应的应用监控?
- 为什么在诊断JS错误时,会显示Source Map文件错误?
- 用户控制台的设置和setConfig的关系是什么?
- 资源消耗图展示的资源消耗和计费流量的关系是什么?
- SDK中应该如何配置环境和版本号?
- 如何查看配置的版本号?
- 如何查看用户的页面停留时间?
- ARMS配置未生效怎么处理?
- 为什么小程序JS Error没有上报?
- 可以监听console.error的JS Error吗?
- 在Weex环境中,小程序设置的UID为什么没生效?
- 日志的保存时效是多长?
- 试用期创建的站点可以在开通专家版之后继续使用吗?
- 为什么控制台中不同模块的同一个页面的访问量差别大?
- 为什么duration会小于conntect download?
- 如果调用__bl.performance()方法时不确定SDK是否已加载完成怎么办?
为什么有些监控页面或API名称中出现了星号(*)?
ARMS前端监控的页面统计是以实际打开的页面URL为基础,对各个维度进行统计。监控页面或API名称中的星号(*)并不是真实页面URL的一部分,而是表示这是经过URL收敛后的结果。换言之,它表示这不是一个具体的URL,而是一些相似URL的集合。

URL收敛算法说明
- 问题:“变量”会导致同类URL发散成多个,因而难以监控和分析。
- 目标:合并同类URL,用星号(*)代替不断变化的“变量”。
- 方案:采用我们自研的URL收敛算法,在尽可能保留语义信息的前提下,合并同类URL,减少URL总数。主要分为以下两步。
- 聚类:将相似URL归纳为一组。
- “变量”识别:提取同组URL中不断变化的“变量”,并以星号(*)代替。
收敛过程如下图所示。

解决方案
关闭URL收敛的具体操作,请参考urlHelper。
为什么页面访问量列表和页面访问速度列表不一致?
这是因为您的应用是SPA( Single-Page Application,单页面应用),且开启了SPA自动解析。在SPA的应用场景下,页面访问量和页面访问速度的统计方法如下。
- 页面访问量:触发hashchange事件后会自动上报PV,以统计该Hash值对应页面的PV情况。所以在查看SPA应用的页面访问量列表时,可以查看对应的Hash页面的具体PV。
- 页面访问速度:因为SPA应用切换Hash值后,页面的访问速度不会变化,所以访问速度的统计不以Hash值为维度,这样不仅可以减少不必要的上报量,而且还可以清晰了解页面的性能情况。
为什么API日志中没有生成TraceId,导致无法跳转至对应的应用监控?
为什么在诊断JS错误时,会显示Source Map文件错误?
- 请确保文件后缀名为.js.map。
- 请确保账号有ARMS的写入权限,如果账号没有权限,请联系账号管理员。
用户控制台的设置和setConfig的关系是什么?
控制台的设置仅可以帮助您快速生成相应的配置代码,生成的代码仅在发布后生效,而修改setConfig是直接生效的。

此外,控制台的设置只能在接入时使用,接入完成后,您需要通过setConfig来修改配置。
资源消耗图展示的资源消耗和计费流量的关系是什么?
资源消耗图展示的是真实的资源消耗,您在设置消费限制中设置的也是真实消耗的上限额度,更多信息,请参见设置消费限制。真实的资源消耗中,只有部分流量是计费的。
SDK中应该如何配置环境和版本号?
您可以通过配置release参数来区分版本号,更多信息,请参见release。您也可以通过配置environment来区分不同环境,更多信息,请参见environment。
- prod表示线上环境。
- gray表示灰度环境。
- pre表示预发环境。
- daily表示日常环境。
- local表示本地环境。
如何查看配置的版本号?
如何查看用户的页面停留时间?
- 登录ARMS控制台。
- 在左侧导航栏中单击前端监控,在前端监控页面上单击目标应用名称。
- 在左侧导航栏中选择 。
- 在会话列表中单击目标会话的会话ID,查看会话追踪详情页面。
- 将光标放置在访问时间轴列内的时间轴区域上,即可查看页面停留时间。
如何查看ARMS的前端自定义性能指标?
- 登录ARMS控制台。
- 在左侧导航栏中单击前端监控,在前端监控页面上单击目标应用名称。
- 在左侧导航栏中选择 。
- 自定义性能指标展示在页面访问速度排行区域中。
ARMS配置未生效怎么处理?
原因可能是浏览器缓存未更新。您可以先在导航栏内选择访问明细后,切换版本号为最新配置的版本号并查看趋势图。如果未配置版本号,可以在SDK中配置release参数,请参见release。发布完成后,请观察最新版本是否符合预期。
为什么小程序JS Error没有上报?
小程序JS Error没有上报可能是因为在async方法下,信息被小程序底层的try catch捕获,导致错误信息上传失败。您可以尝试手动上报错误信息,请参见API参考。
可以监听console.error的JS Error吗?
- 在浏览器中,针对满足JS Error格式的错误信息,浏览器会静默上报。
- 在小程序端,您可尝试手动上报错误信息,请参见API参考。
在Weex环境中,小程序设置的UID为什么没生效?
- 如果未调用setConfig方法,请检查初始化配置时是否配置UID,如果缺失请补全。
- 如果调用了setConfig方法,请在setConfig中重新配置UID。
日志的保存时效是多长?
- 基础版的日志的保存时效为7天。
- 专家版的日志的保存时效为30天。
试用期创建的站点可以在开通专家版之后继续使用吗?
- 在试用期到期之后的15天内,站点将因为欠费被停用,您可以尝试重新启动应用。
- 在试用期到期之后的15天后,出于节约计算资源和存储资源的考虑,超出试用时间未开通专业版的站点将被删除,相关的资源也会释放,这部分数据是无法找回的。
ARMS应用版本和宿主版本分别是什么?
- 应用版本是当前线上项目的版本号,可以通过配置SDK的release字段来配置,请参见release。
- 宿主版本是SDK自动获取的,是当前项目所依附的App的版本号,目前因为没有对应宿主App版本的解析方案,只能解析到淘宝、支付宝或微信。
为什么控制台中不同模块的同一个页面的访问量差别大?
访问速度页面中:访问量=性能日志*Sample
维度页面中:访问量=PV日志
静默上报的性能日志只有在页面Onload之后才上报一次,即每次刷新页面,只会有一次性能日志上报。
开启单页应用模式后,每次切换路由都会有PV日志上报,即单页应用中,性能日志在量级上远远小于PV日志,导致对应的访问量差异大。
为什么duration会小于connect download?
ARMS资源加载的性能数据是从performance.getEntriesByType('resource')
中获取的,当获取页面资源时间详情有跨域限制时,默认情况下,跨域资源的性能数据中以下字段从performance.getEntriesByType('resource')
中获取的值为0。
redirectStart
redirectEnd
domainLookupStart
domainLookupEnd
connectStart
connectEnd
secureConnectionStart
requestStart
responseStart
部分时间属性由于计算方式中涉及以上字段,导致不准或者异常,例如:connect download:responseEnd - responseStart
,由于responseStart的时间戳是0,导致connect download大于duration。
- 对于您自用的CDN资源,设置响应头Timing-Allow-Origin允许获取资源时间,可以解决上述问题。
- 对于第三方资源,建议此时以duration的值为主参考。
如果调用__bl.performance()方法时不确定SDK是否已加载完成怎么办?
请参见SPA页面上报。