前端监控常见问题

本文解答了关于前端监控的常见问题。

计费相关

使用相关

为什么有些监控页面或API名称中出现了星号(*)?

ARMS前端监控的页面统计是以实际打开的页面URL为基础,对各个维度进行统计。监控页面或API名称中的星号(*)并不是真实页面URL的一部分,而是表示这是经过URL收敛后的结果。换言之,它表示这不是一个具体的URL,而是一些相似URL的集合。

Satisfaction Trend

URL收敛算法说明

  • 问题:“变量”会导致同类URL发散成多个,因而难以监控和分析。

  • 目标:合并同类URL,用星号(*)代替不断变化的“变量”。

  • 方案:采用我们自研的URL收敛算法,在尽可能保留语义信息的前提下,合并同类URL,减少URL总数。主要分为以下两步。

    • 聚类:将相似URL归纳为一组。

    • “变量”识别:提取同组URL中不断变化的“变量”,并以星号(*)代替。

收敛过程如下图所示。

Convergence Process

解决方案

关闭URL收敛的具体操作,请参考urlHelper

[回到顶部]

为什么页面访问量列表和页面访问速度列表不一致?

这是因为您的应用是SPA( Single-Page Application,单页面应用),且开启了SPA自动解析。在SPA的应用场景下,页面访问量和页面访问速度的统计方法如下。

  • 页面访问量:触发hashchange事件后会自动上报PV,以统计该Hash值对应页面的PV情况。所以在查看SPA应用的页面访问量列表时,可以查看对应的Hash页面的具体PV。

  • 页面访问速度:因为SPA应用切换Hash值后,页面的访问速度不会变化,所以访问速度的统计不以Hash值为维度,这样不仅可以减少不必要的上报量,而且还可以清晰了解页面的性能情况。

[回到顶部]

为什么API日志中没有生成TraceId,导致无法跳转至对应的应用监控?

  1. 登录ARMS控制台
  2. 在左侧导航栏选择前端监控 > 前端列表,然后单击目标应用名称。
  3. 在左侧导航栏中选择设置 > 应用设置

  4. 请在接入步骤页签检查您的ARMS探针配置项是否选中与应用监控关联。若未选中,请选中后,再重新将ARMS探针接入前端应用。

    tab_retcode_settings_precondition

    检查API日志中是否生成TraceId。若仍未生成TraceId,则执行步骤5

  5. 检查您的页面请求和API请求的域名是否一致。为防止因跨域名验证导致API请求失败,因此若存在跨域名访问的情况,则不能正常生成TraceId。

    解决方案,请参考API与当前应用域名非同源

[回到顶部]

为什么在诊断JS错误时,会显示Source Map文件错误?

  1. 请确保文件后缀名为.js.map

  2. 请确保账号有ARMS的写入权限,如果账号没有权限,请联系账号管理员。

[回到顶部]

用户控制台的设置和setConfig的关系是什么?

控制台的设置仅可以帮助您快速生成相应的配置代码,生成的代码仅在发布后生效,而修改setConfig是直接生效的。

ARMS控制台生成代码

此外,控制台的设置只能在接入时使用,接入完成后,您需要通过setConfig来修改配置。

[回到顶部]

资源消耗图展示的资源消耗和计费流量的关系是什么?

资源消耗图展示的是真实的资源消耗,您在设置消费限制中设置的也是真实消耗的上限额度,更多信息,请参见账单和用量查询。真实的资源消耗中,只有部分流量是计费的。

[回到顶部]

SDK中应该如何配置环境和版本号?

您可以通过配置release参数来区分版本号,更多信息,请参见release。您也可以通过配置environment来区分不同环境,更多信息,请参见environment

  • prod表示线上环境。

  • gray表示灰度环境。

  • pre表示预发环境。

  • daily表示日常环境。

  • local表示本地环境。

[回到顶部]

如何查看配置的版本号?

  1. 登录ARMS控制台
  2. 在左侧导航栏选择前端监控 > 前端列表,然后单击目标应用名称。
  3. 在左侧导航栏中选择应用 > 访问明细

    日志的版本号显示在日志列表区域的版本号列内。查看版本号

  4. 您也可以在菜单栏内按照环境和版本筛选日志。只有在PV日志设置完成版本号后,才可以使用按照版本号筛选日志功能。按照环境和版本筛选日志

[回到顶部]

如何查看用户的页面停留时间?

  1. 登录ARMS控制台
  2. 在左侧导航栏选择前端监控 > 前端列表,然后单击目标应用名称。
  3. 在左侧导航栏选择应用 > 会话追踪
  4. 在会话列表中单击目标会话的会话ID,查看会话追踪详情页面。
  5. 将光标放置在访问时间轴列内的时间轴区域上,即可查看页面停留时间。

[回到顶部]

如何查看ARMS的前端自定义性能指标?

  1. 登录ARMS控制台
  2. 在左侧导航栏选择前端监控 > 前端列表,然后单击目标应用名称。
  3. 在左侧导航栏中选择应用 > 访问速度

  4. 自定义性能指标展示在页面访问速度排行区域中。

[回到顶部]

ARMS配置未生效怎么处理?

原因可能是浏览器缓存未更新。您可以先在导航栏内选择访问明细后,切换版本号为最新配置的版本号并查看趋势图。如果未配置版本号,可以在SDK中配置release参数,请参见release。发布完成后,请观察最新版本是否符合预期。

[回到顶部]

为什么小程序JS Error没有上报?

小程序JS Error没有上报可能是因为在async方法下,信息被小程序底层的try catch捕获,导致错误信息上传失败。您可以尝试手动上报错误信息,请参见API参考

[回到顶部]

可以监听console.errorJS Error吗?

  • 在浏览器中,针对满足JS Error格式的错误信息,浏览器会静默上报。

  • 在小程序端,您可尝试手动上报错误信息,请参见API参考

[回到顶部]

Weex环境中,小程序设置的UID为什么没生效?

  • 如果未调用setConfig方法,请检查初始化配置时是否配置UID,如果缺失请补全。

  • 如果调用了setConfig方法,请在setConfig中重新配置UID。

[回到顶部]

日志的保存时效是多长?

  • 基础版的日志的保存时效为7天。

  • 专家版的日志的保存时效为30天。

[回到顶部]

试用期创建的站点可以在开通专家版之后继续使用吗?

  • 在试用期到期之后的15天内,站点将因为欠费被停用,您可以尝试重新启动应用。

  • 在试用期到期之后的15天后,出于节约计算资源和存储资源的考虑,超出试用时间未开通专业版的站点将被删除,相关的资源也会释放,这部分数据是无法找回的。

[回到顶部]

ARMS应用版本和宿主版本分别是什么?

  • 应用版本是当前线上项目的版本号,可以通过配置SDKrelease字段来配置,请参见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页面上报

[回到顶部]