跳转至

用户访问指标检测


用于监控工作空间内用户访问指标数据,可设置阈值范围,指标超出时系统自动告警。

应用场景

支持监控 Web、Android、iOS 和 Miniapp 等多类型应用的指标数据。例如,可针对 Web 端基于城市维度的 JS 错误率进行监控。

检测配置

检测频率

即检测规则的执行频率。

检测区间

即检测指标查询的时间范围。受检测频率影响,可选检测区间会有不同。

检测频率 检测区间(下拉可选项)
30s 1m/5m/15m/30m/1h/3h
1m 1m/5m/15m/30m/1h/3h
5m 5m/15m/30m/1h/3h
15m 15m/30m/1h/3h/6h
30m 30m/1h/3h/6h
1h 1h/3h/6h/12h/24h
6h 6h/12h/24h
12h 12h/24h
24h 24h

检测指标

设置检测指标,可针对当前工作空间内单一应用类型下的应用指标数据进行配置,支持设定时间范围。例如:当前工作空间内 Web 类型下所有应用的指标数据。

字段 说明
应用类型 用户访问监测支持的应用类型,包括 Web、Android、iOS、Miniapp
应用名称 基于应用类型获取对应的应用列表。
指标 按应用类型划分的指标列表:

  • Web/Miniapp(包括 JS 错误数、JS 错误率、资源错误数、资源错误率、首次渲染平均时间、页面加载平均耗时、LCP(largest_contentful_paint)、FID(first_input_delay)、CLS(cumulative_layout_shift)、FCP(first_contentful_paint) 等)

  • Android/IOS(包括启动耗时、总崩溃数、总崩溃率、资源错误数、资源错误率、FPS、页面加载平均耗时等)。
  • 筛选条件 基于指标标签筛选检测数据范围,支持添加多个标签,可进行模糊匹配或模糊不匹配筛选。
    检测维度 可从配置数据的字符串类型(keyword)字段中选择最多三个作为检测维度。多字段组合可确定唯一检测对象,系统据此判断指标是否达阈值以触发事件。

    例如:选择检测维度 hosthost_ip,则检测对象可以为 {host: host1, host_ip: 127.0.0.1}

    Web / Miniapp 指标说明

    指标 查询示例
    JS 错误数 R::error:(count(`__docid`) as `JS 错误数`) { `app_id` = '<应用 ID>' }
    JS 错误率 Web: eval(A/B, alias='页面 JS 错误率', A="R::view:(count(`view_url`)) {`view_error_count` > 0, `app_id` = '<应用 ID>'}",B="R::view:(count(`view_url`)) { `app_id` = '<应用 ID>'} ") Miniapp: eval(A/B, alias='JS 错误率', A="R::view:(count(`view_name`)) {`view_error_count` > 0, `app_id` = '<应用 ID>' }",B="R::view:(count(`view_name`)) { `app_id` = '<应用 ID>' }")
    资源错误数 R::resource:(count(`resource_url`) as `资源错误数`) {`resource_status` >=400, `app_id` = '<应用 ID>'}
    资源错误率 eval(A/B, alias='资源错误率', A="R::`resource`:(count(`resource_url`)) { `resource_status` >= '400',`app_id` = '<应用 ID>' }", B="R::`resource`:(count(`resource_url`)) { `app_id` = '<应用 ID>' }")
    首次渲染平均时间 R::page:(avg(page_fpt)){`app_id` = '#{appid}'}
    页面加载平均耗时 R::view:(avg(loading_time)){`app_id` = '#{appid}'}
    页面慢加载次数 R::resource:(count(resource_load)){`app_id` = '#{appid}',`resource_load`>8000000000,resource_type='document'}
    资源加载平均耗时 R::resource:(avg(`resource_load`) as `加载耗时` ) {`app_id` = '#{appid}',resource_type!='document'}
    LCP (largest_contentful_paint) 包括聚合函数: avg、P75、P90、P99

    R::view:(avg(largest_contentful_paint)){`app_id` = '#{appid}'} R::view:(percentile(`largest_contentful_paint`,75)){`app_id` = '#{appid}'} R::view:(percentile(`largest_contentful_paint`,90)){`app_id` = '#{appid}'} R::view:(percentile(`largest_contentful_paint`,99)){`app_id` = '#{appid}'}
    FID (first_input_delay) 包括聚合函数: avg、P75、P90、P99

    R::view:(avg(first_input_delay)){`app_id` = '#{appid}'} R::view:(percentile(`first_input_delay`,75)){`app_id` = '#{appid}'} R::view:(percentile(`first_input_delay`,90)){`app_id` = '#{appid}'} R::view:(percentile(`first_input_delay`,99)){`app_id` = '#{appid}'}
    CLS (cumulative_layout_shift) 包括聚合函数: avg、P75、P90、P99

    R::view:(avg(cumulative_layout_shift)){`app_id` = '#{appid}'} R::view:(percentile(`cumulative_layout_shift`,75)){`app_id` = '#{appid}'} R::view:(percentile(`cumulative_layout_shift`,90)){`app_id` = '#{appid}'} R::view:(percentile(`cumulative_layout_shift`,99)){`app_id` = '#{appid}'}
    FCP (first_contentful_paint) 包括聚合函数: avg、P75、P90、P99

    R::view:(avg(first_contentful_paint)){`app_id` = '#{appid}'} R::view:(percentile(`first_contentful_paint`,75)){`app_id` = '#{appid}'} R::view:(percentile(`first_contentful_paint`,90)){`app_id` = '#{appid}'} R::view:(percentile(`first_contentful_paint`,99)){`app_id` = '#{appid}'}

    Android / IOS 指标说明

    指标 查询示例
    启动耗时 R::action:(avg(duration)) { `app_id` = '<应用 ID>' ,action_type='app_cold_launch'}
    总崩溃数 R::error:(count(error_type)) {app_id='<应用 ID>',`error_source` = 'logger' and is_web_view !='true'}
    总崩溃率 eval(A.a1/B.b1, alias='总崩溃率',A="R::error:(count(error_type) as a1) {app_id='<应用 ID>',`error_source` = 'logger',is_web_view !='true'} ",B="R::action:(count(action_name) as b1) { `app_id` = '<应用 ID>',`action_type` in [`launch_cold`,`launch_hot`,`launch_warm`]} ")
    资源错误数 R::resource:(count(`resource_url`) as `资源错误数`) {`resource_status` >=400, `app_id` = '<应用 ID>'}
    资源错误率 eval(A/B, alias='资源错误率', A="R::`resource`:(count(`resource_url`)) { `resource_status` >= '400',`app_id` = '<应用 ID>' }", B="R::`resource`:(count(`resource_url`)) { `app_id` = '<应用 ID>' }")
    平均 FPS R::view:(avg(`fps_avg`)) { `app_id` = '<应用 ID>' }
    页面加载平均耗时 R::view:(avg(`loading_time`)) { `app_id` = '<应用 ID>' }
    资源加载平均耗时 R::resource:(avg(`duration`)) { `app_id` = '<应用 ID>' }
    卡顿次数 R::long_task:(count(`view_id`)) { `app_id` = '<应用 ID>' }
    页面错误率 eval(A/B, alias='页面错误率',A="R::view:(count(`view_name`)) {`view_error_count` > 0, `app_id` = '<应用 ID>' }",B="R::view:(count(`view_name`)) { `app_id` = '<应用 ID>' }")

    触发条件

    设置告警级别的触发条件:您可任意配置紧急、重要、警告、正常的其中一种触发条件。

    配置触发条件及严重程度,当查询结果为多个值时,任一值满足触发条件则产生事件。

    更多详情,可参考 事件等级说明

    开启连续触发判断,可配置连续多次判断触发条件生效后,再次触发生成事件。最大上限 10 次。

    告警级别
    1. 告警级别紧急(红色)、重要(橙色)、警告(黄色):基于配置条件判断运算符。

    更多详情,可参考 运算符说明

    1. 告警级别正常(绿色):基于配置检测次数,说明如下:

      • 每执行一次检测任务即为 1 次检测,如检测频率 = 5 分钟,则 1 次检测 = 5 分钟;
      • 可以自定义检测次数,如检测频率 = 5 分钟,则 3 次检测 = 15 分钟。
      级别 描述
      正常 检测规则生效后,产生紧急、重要、警告异常事件后,在配置的自定义检测次数内,数据检测结果恢复正常,则产生恢复告警事件。
      ⚠ 恢复告警事件不受告警沉默限制。若未设置恢复告警事件检测次数,则告警事件不会恢复,且一直会出现在事件 > 未恢复事件列表中。

    数据断档

    针对数据断档状态,可配置七种策略。

    1. 联动检测区间时间范围,判断检测指标最近分钟数的查询结果,不触发事件

    2. 联动检测区间时间范围,判断检测指标最近分钟数的查询结果,查询结果视为 0;此时查询结果将重新与上方触发条件中配置的阈值做比较,从而判断是否触发异常事件。

    3. 自定义填充检测区间值,触发数据断档事件、触发紧急事件、触发重要事件、触发警告事件及触发恢复事件;选择该类配置策略,自定义数据断档时间配置建议 >= 检测区间时间间隔,若配置时间 <= 检测区间时间间隔,可能存在同时满足数据断档和异常情况,此情况下仅会应用数据断档处理结果。

    信息生成

    开启此选项后,将未匹配到以上触发条件的检测结果生成“信息”事件写入。

    注意

    若同时配置触发条件、数据断档、信息生成时,按照如下优先级判断触发:数据断档 > 触发条件 > 信息事件生成。

    其他配置

    更多详情,可参考 规则配置

    文档评价

    文档内容是否对您有帮助? ×