任务名称终端性能监控 Pro 支持在控制管理台,通过配置任务,控制 SDK 的行为。用户可以通过配置,控制监控功能的开启与否,控制是否允许上传自定义文件等等。本文主要介绍如何使用终端性能监控 Pro 的 SDK 配置。
概述
应用创建完成后,配置任务列表为空,用户需要创建配置任务。如需调整已有的配置任务,同时支持进行修改,且所有对配置进行的操作,会显示在配置修改历史中。
用户可以创建多个配置任务,为每个配置任务设置恰当的优先级以及过滤条件。当应用来拉取配置时,配置系统会根据配置请求中的参数,挑选出满足过滤条件的配置任务,在这些配置任务中找到优先级最高的任务返回给应用。
过滤条件:描述一个配置任务要求来拉取的用户需要满足的特征。
优先级:描述当一个用户匹配到多个配置任务时,如何选择任务。当前是挑选优先级最高的任务。如果匹配的多个任务,优先级是一样的,则配置系统会随机选择一个任务返回。

新建配置任务
1. 进入 终端性能监控 Pro > 应用配置 > SDK 配置 页面,单击新建配置,为对应的产品创建一个新的配置任务。
2. 配置任务,配置项如下:
3. 配置完成后单击提交,即可在配置任务中查看新建的任务。新建的任务默认状态关闭,需要用户主动开启。

管理配置任务
开启/关闭配置
1. 用户可以直接操作配置状态,开启或者关闭配置任务。
说明:
应用拉取配置时,配置系统只取开启中的配置任务来进行匹配,未开启的配置任务不参与匹配,应用无法拉取到未开启的配置任务。如果用户想临时废弃某个配置任务,可以通过关闭该任务来实现。

2. 单击确定即可开启或者关闭配置任务。

修改配置任务
无论是生效中的配置任务(已开启的配置任务),还是未生效的配置任务(未开启的配置任务),都支持修改,单击操作列的编辑即可进行修改。

完成修改配置任务,单击提交,配置便会修改完成。

复制配置任务
无论是生效中的配置任务(已开启的配置任务),还是未生效的配置任务(未开启的配置任务),都支持复制,单击操作列的复制即可进行拉起指定任务配置的副本并进入编辑状态。

依据复制目的修改配置任务,单击提交后,便会生成新的配置。

删除配置任务
无论是生效中的配置任务(已开启的配置任务),还是未生效的配置任务(未开启的配置任务),都支持删除。生效中的配置任务被删除后,应用下次拉取时,就不会再拉到被删除的配置任务。
单击操作列的删除,然后在弹出的窗口中单击确定即可完成删除。

查看修改历史
配置修改历史记录了用户对配置任务执行的任何操作,包含新建配置任务,开启或者关闭配置任务,编辑配置任务以及删除配置任务。

支持查看某个配置任务的修改历史,如下示例,查看白名单配置的修改历史。也支持查看,某个用户的修改历史。

过滤条件
在配置任务列表中,将展示当前任务的过滤条件。

版本类型
版本类型即应用版本类型,用于描述当前的应用版本,支持开发版、灰度版、正式版,且支持多选,默认不限制。应用没有设置的情况下,应用版本类型的默认值是未知类型。建议初始化 SDK 时,设置正确的应用版本类型。
Android SDK:通过
BuglyBuilder#appVersionType
初始化参数设置应用版本类型。iOS SDK:通过
BuglyConfig#setBuildConfig
接口设置应用版本类型。示例:设置拉取的版本类型,当应用版本为灰度版和正式版,才能拉取当前配置任务。

APP 版本
APP版本即应用版本,用于描述当前接入 SDK 的应用的版本号。
Android SDK:通过
BuglyBuilder#appVersion
初始化参数设置 APP 版本。iOS SDK:通过
BuglyConfig#setAppVersion
接口设置应用版本。示例:当 APP 版本为"4.5.6" 或者 "4.5.7"时, 才能拉取当前配置任务。

SDK 版本
SDK 版本指终端性能监控 Pro SDK 的版本,对应接入时所依赖的 SDK 版本,支持多个,默认不限制。
示例:当 SDK 版本是"4.3.0"或者"4.3.0.1"时,才能拉取当前配置任务。

系统版本
系统版本指当前运行应用的操作系统的版本,SDK 直接读取系统版本属性。系统版本支持设置多个,默认不限制。
Android SDK:SDK 初始化时自动获取
Build.VERSION.RELEASE
字段,格式如"12","13","9","8.0.0"之类。iOS SDK:SDK 初始化时自动获取
[[UIDevice currentDevice] systemVersion]
字段,格式如"14.1","16.1"之类。示例:当系统版本是12、13、9、8.1,或者8.0.0时,才能拉取当前配置任务。

机型
机型即设备类型,一般用来表示一种型号的设备。
Android SDK:通过
BuglyBuilder#deviceModel
初始化参数设置机型,如果应用没有设置,初始化时会自动读取 Build.MODEL。示例:当机型为 V2034A、V2065或者 V5048AD 时,才能拉取当前配置任务。

iOS SDK:SDK 初始化时自动获取 sysctlbyname 字段,格式如"iPhone13,4","iPhone15,3"之类。
示例:当机型为 iPhone11或者 iPhone12时,才能拉取当前配置任务。

用户白名单
用户白名单对应SDK中的用户ID,支持设置多个,默认是不限制。
Android SDK:通过
BuglyBuilder#userId
初始化参数设置用户 ID,如果应用没有设置,则用户 ID 为空。iOS SDK:通过
BuglyInitParam#setUserId
接口设置用户 ID。如果应用没有设置,则用户 ID 为空。示例:当用户 ID 为"marry"或者"mike"时,才能拉取当前配置任务。

设备白名单
设备白名单对应 SDK 中的设备 ID,支持设置多个,默认是不限制。
Android SDK:通过
BuglyBuilder#uniqueId
初始化参数设置设备 ID。如果应用没有设置,SDK 会优先从 SP 缓存中读取。如果缓存为空,则随机生成一个并且更新到缓存中。一旦用户设置设备 ID,SDK 会用应用设置的设备 ID 覆盖 SP 缓存。iOS SDK:通过
BuglyInitParam#setDeviceId
接口设置设备 ID。如果应用没有设置,则设备 ID 为空。该字段用来统计设备崩溃率、设备 FOOM 率等设备异常率,请务必设置。示例:当设备 ID 为"b171a7113a0cfb05"或者"2ee44f2a31f030a"时,才能拉取当前配置任务。

多条件组合示例:版本类型是开发版,APP 版本是"4.6.7",且是 Android 12的系统,则该配置任务满足条件。

配置内容
Android 和 iOS 平台所支持的具体配置项有些差异,有关配置项的详细说明,请参考两端 SDK 的接入指引。除具体的配置项差异外,其他逻辑两端表现一致。
设备采样率
绝大部分配置项有一个采样率("sample_ratio")参数,表示该监控能力的设备采样率。当前是后台采样,配置系统会根据拉取配置的设备情况,去通知 SDK。当前设备是允许开启某个监控项,或者禁用某个监控项。取值范围为(0,1):
1:表示所有设备都允许开启某个监控项。
0:表示所有设备都不允许开启某个监控项。
取(0,1)之间的某个值 a:表示按 a 指定的概率,部分设备允许开启某个监控项,部分设备不允许开启某个监控项。例如a=0.3,表示30%的设备允许开启指定监控项,70%的设备不允许开启指定监控项。
示例:允许所有的设备开启内存峰值监控,只允许10%的设备开启大图分析功能。

Android 配置项
崩溃、ANR、OOM 是100%上报,不支持采样,默认开启。除崩溃、ANR、OOM外,其他监控项支持采样。一般情况下,性能指标监控默认开启,性能异常监控默认关闭,用户可以通过 SDK 配置调整开启情况。在接入时,请务必确认功能的开启情况符合您的预期。
需要在 终端性能监控 Pro > 应用配置 > SDK 配置 中,修改配置开关,指定监控项的采样率。
在接入期间,建议全采样,即将所有采样率调整为1.0,方便验证数据上报。接入完成后,再根据需要,调整采样率。或者创建多个配置任务,根据版本类型(对应初始化的 builder.appVersionType),配置开发任务、灰度任务,和正式任务。开发任务打开所有的监控项,灰度阶段按需采样,正式发布根据需要降低采样。
各监控项的配置参数说明如下:
质量监控
监控项 | 配置项 | 配置参数 | 取值说明 |
崩溃监控 | "crash" | "cus_file_sample_ratio" | 自定义文件的上报采样率,取值[0,1]。 1表示全部上报 0表示不上报 其他表示抽样上报,默认全部上报 |
错误上报 | "error_report" | "sample_ratio" | 错误的上报采样率,取值[0,1]。 1表示全部上报 0表示不上报 其他表示用户抽样上报,默认全部上报 |
启动监控
监控项 | 配置项 | 配置参数 | 取值说明 |
启动指标 | "launch_metric" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
卡顿监控
监控项 | 配置项 | 配置参数 | 取值说明 |
卡顿指标 | "looper_metric" | "sample_ratio" | 设备采样率,取值[0,1] 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
卡顿监控 | "looper_stack" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "event_sample_ratio" | 消息采样率,取值[0,1]。 1表示监控所有的 UI 线程消息 0表示不监控任何 UI 线程消息 其他表示指定概率,抽样监控 UI 线程的消息 |
| | "stack_interval_ms" | 卡顿抓栈间隔,单位是ms |
| | "threshold" | 判定卡顿的阈值,单位是ms |
| | "detect_strategy" | 卡顿监控粒度,当前支持 msg 和 vsync,默认值为 msg |
内存监控
监控项 | 配置项 | 配置参数 | 取值说明 |
内存峰值 | "memory_quantile" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
Java 内存泄露监控 | "activity_leak" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 Activity 的泄露监控 |
| | "event_sample_ratio" | 事件采样率,取值[0,1]。 1表示 Activity 在 onDestroy 时,或者调用 startInspectLeakObj 时,全量开启 Java 对象泄露检查; 0表示不开启 Java 对象泄露检查; 其他表示按指定的概率抽样开启Java对象泄露检查。 举例说明,取值0.5表示 Activity 在 onDestroy 时,或者调用 startInspectLeakObj 时,有50%的概率会开启 Java 对象泄露检查 |
Java 内存触顶监控 | "java_memory_ceiling_hprof" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 Java 内存触顶监控 |
| | "threshold" | 内存触顶阈值百分比,取值[0,100],表示达到 Java 最大可用内存的阈值百分比时,判定为内存触顶事件 |
| | "event_sample_ratio" | 事件采样率,取值[0,1],用于控制当发生 Java 内存触顶时,事件上报的概率 |
大图分析 | "big_bitmap" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "threshold" | 图片超标阈值,取值(100, Int 最大值),图片超标率 = Decode 图片的长 x Decode 图片的宽 / 显示区域的长 x 显示区域的宽 x 100。 大图检测就是检查 Decode 图片大小超过其显示区域大小的情况。例如取值150表示当图片超标率 > 150时,认为属于异常情况,需要上报 |
Native 内存触顶监控 | "native_memory" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "event_sample_ratio" | 事件采样率,取值[0,1],用于控制当发生内存触顶时(VSS 或者 PSS 触顶),dump 内存进行数据上报的采样率 |
FD 触顶监控 | "fd_leak" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "event_sample_ratio" | 事件采样率,取值[0,1],用于控制当发生 FD 触顶时,事件上报的概率 |
| | "threshold" | 判定 FD 触顶的阈值,代表达到触顶的 FD 数量 |
Java 内存泄露监控配置说明:
"activity_leak"的"sample_ratio"和"event_sample_ratio"的差异如下:
"sample_ratio":表示允许多少比例的设备,监控 Activity/Fragment 的生命周期,在 Activity 执行 onDestroy 时,Fragment 执行 onFragmentDestroyed 或者 onFragmentViewDestroyed 时调用 startInspectLeakObj。
"event_sample_ratio":表示当调用 startInspectLeakObj 时(无论是应用主动调用,还是监控自动调用),按多大的概率来真正开启 Java 对象泄露的检测流程。
进程退出分析
监控项 | 配置项 | 配置参数 | 取值说明 |
进程退出分析 | "application_exit" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "event_sample_ratio" | 附件采样率,取值[0,1],表示当存在 tombs 附件或 trace 附件时,按指定概率抽样上报 |
流量监控
监控项 | 配置项 | 配置参数 | 取值说明 |
流量异常分析 | "traffic_detail" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "total_limit_in_megabyte" | 10分钟消耗的流量超过配置的流量异常阈值,单位是MB |
| | "mobile_limit_in_megabyte" | 10分钟消耗的移动流量超过配置的移动异常流量阈值,单位是MB |
| | "backend_limit_in_megabyte" | 后台场景,10分钟消耗的流量超过配置的后台异常流量阈值,单位是MB |
| | "custom_limit_in_megabyte" | 业务定义的自定义场景,10分钟消耗的流量超过配置的阈值,单位是MB |
| | "filter_local_address" | 异常流量监控是否过滤本地地址,取布尔值 |
| | "metric_event_sample_ratio" | 10分钟流量指标事件采样率,取值[0,1] |
| | "error_event_sample_ratio" | 10分钟流量异常事件采样率,取值[0,1] |
流量指标 | "traffic" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
电量监控
监控项 | 配置项 | 配置参数 | 取值说明 |
前台电量指标 | "battery_metric" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "daily_report_limit" | 监控项每天最大上报次数 |
电量耗电因素指标 | "battery_ele_metric" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "daily_report_limit" | 监控项每天最大上报次数 |
电量耗电因素异常个例 | "battery_element" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "daily_report_limit" | 监控项每天最大上报次数 |
| | "single_location_duration_in_ms" | 单次使用 GPS 最大时长,单位ms |
| | "total_location_duration_in_ms" | 10分钟内总的更新 GPS 时长,单位ms |
| | "max_location_open_num" | 10分钟内打开 GPS 的最大次数 |
| | "single_wakelock_duration_in_ms" | 单次使用 WakeLock 的最大时长,单位ms |
| | "total_wakelock_duration_in_ms" | 10分钟内总的使用 WakeLock 最大时长,单位ms |
| | "max_wakelock_open_num" | 10分钟内打开 WakeLock 的最大次数 |
| | "max_alarm_open_num" | 10分钟内打开 alarm 的最大次数 |
| | "max_wakeup_alarm_open_num" | 10分钟内打开 wakeup 类型的 alarm 的最大次数 |
网络监控
监控项 | 配置项 | 配置参数 | 取值说明 |
网络质量监控 | "net_quality" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "daily_report_limit" | 监控项每天最大上报次数 |
| | "max_batch_count" | 一条上报最多包含请求明细条目 |
| | "min_batch_count" | 一条上报最少包含请求明细条目 |
Asan 内存错误检测
监控项 | 配置项 | 配置参数 | 取值说明 |
ASan 内存错误检测 | "asan" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "slot_size" | 可分配内存 Slot Page 大小,单位KB,越大所需内存开销越大,建议使用默认值 |
| | "slot_count" | 可分配内存 Slot Page 数量,数量越多会有更多的内存用于内存错误检测,内存开销越大,建议使用默认值 |
| | "max_sample_gap_count" | 循环采样随机数的最大值,值越大内存分配时采样命中的概率越低 |
| | "left_side_align_percentage" | 在 ASan Memory Pool 中内存分配时左对齐的概率,取值[0,100],值越小越易于检测 Overflow 问题,反之越容易检测 Underflow 问题 |
| | "right_side_perfect_align" | 在 ASan Memory Pool 中内存分配右对齐时是否不按页对齐,若不按页对齐更容易检测出 Overflow 问题,但也可能带来未知的 crash 风险 |
| | "ignore_overlapped_reading" | 是否忽略重读类型的 ASan 错误 |
| | "target_so_patterns" | 需要检测的 SO 文件,若为空默认检测全部 SO,支持正则表达式设置。当内存问题能定位具体 SO 时,建议设置该值,可以减少稳定性问题 |
| | "ignore_so_patterns" | 需要忽略的 SO 文件,若不为空默认不忽略任何 SO,支持正则表达式设置 |
页面打开耗时
监控项 | 配置项 | 配置参数 | 取值说明 |
页面打开耗时 | "page_launch" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
iOS 配置项
崩溃是100%上报,不支持采样。除崩溃外,其他监控能力都支持采样,默认是全部关闭。
需要在 终端性能监控 Pro > 应用配置 > SDK 配置 中,修改配置开关,指定监控项的采样率。
在接入期间,建议全采样,即将所有采样率调整为1.0,方便验证数据上报。接入完成后,再根据需要调整采样率。或者创建多个配置任务,根据版本类型(对应初始化的 buglyconfig.buildConfig),配置开发任务、灰度任务,以及正式任务。开发任务打开所有的监控项,灰度阶段按需采样,正式发布根据需要降低采样。
卡顿指标监控
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
suspend_threshold_ms | int | 挂起率阈值 | 200 | 200 | - |
scroll_fluency_enable | bool | 滑动 fps 上报 | false | true | - |
scroll_fluency_beacon_report_sample | float | 滑动 fps 灯塔上报抽样,0-1之间,精度 0.0001 | 0 | 0.1 | - |
fluency_beacon_report_sample | float | fps&挂起率灯塔上报抽样,0-1之间,精度 0.0001 | 0 | 0.1 | - |
卡顿问题监控
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
stuck_threshold_ms | int | 卡顿阈值,大于0 | 200 | 200 | - |
optimization_backtrace_ratio | float | 抓栈开关比例,取值范围 [0, 1],精度万分之一,仅开启卡顿抓栈时生效。 | 0 | 0.5 | (2.7.45, 2.7.47] |
skip_first_frame | bool | 是否开启首帧抓栈优化,开启后会跳过前两帧,从第三帧开始抓栈。取值:0或者1 | 0 | 0 | (2.7.45, 2.7.47] |
卡顿问题-工作线程监控
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
threads | array | 子线程配置组 | 见下方字段含义说明 | - | 2.7.29及以上版本 |
threads 中每个子配置的字段含义:
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
stuck_threshold_ms | int | 卡顿阈值,大于0 | 200 | 200 | 2.7.29及以上版本 |
sample_ratio | float | 开启抽样率,取值0 - 1 | 1 | 1 | 2.7.29及以上版本 |
enabled | bool | 是否开启子线程 | true | true | 2.7.29及以上版本 |
thread_name | string | 线程名 | - | - | 2.7.29及以上版本 |
ANR 监控
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
deadlock_threshold_ms | int | 卡死阈值,大于0 | 5000 | 5000 | - |
backtrace_mode | int | 卡顿抓栈模式: 0:CThreadStack 1:初步优化的抓栈逻辑 2:二次优化的抓栈逻辑 | 0 | 1 | 2.7.47及以上版本 |
backtrace_mode_ratio | float | 抓栈开关比例,取值范围 [0, 1],精度万分之一,仅开启卡顿抓栈且配置了 backtrace_mode 时生效。本地采样 | 0 | 0.4 | 2.7.47及以上版本 |
skip_first_frame | bool | 是否开启首帧抓栈优化,开启后会跳过前两帧,从第三帧开始抓栈。bool 值,0或者1 | 0 | 1 | 2.7.47及以上版本 |
backtrace_frequency | int | 抓栈频率,每x帧抓取一次堆栈。高端机 1,低端机 3。 | 3 | 3 | 2.7.49及以上版本 |
启动抓栈
慢启动抓栈,配置开启时,当启动耗时超过 launch_backtrace_threshold_ms 会开启抓栈,耗时超过 launch_deadlock_threshold_ms 时认为启动异常,上报数据到卡顿模块。可以通过自定义字段 "BuglyAppState" 为 "coldLaunch" 进行筛选。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
sample_ratio | float | 启动异常监控抽样率 | 0 | 0.4 | 2.7.49及以上版本 |
launch_deadlock_threshold_ms | int | 慢启动阈值,大于0 | 5000 | 5000 | 2.7.49及以上版本 |
launch_backtrace_threshold_ms | int | 开始抓栈的阈值,大于0 | 3000 | 3000 | 2.7.49及以上版本 |
内存指标监控
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
vmmap | bool | vmmap 信息采集开关 | true | false | [2.7.5 - 2.7.21],2.7.21 以后废弃,改为频率控制 |
vmmap_update_interval | int | vmmap 信息采集间隔,单位为秒,0表示关闭 | 3 | 3 | 2.7.21及以上版本 |
strict_foom_judgment | bool | foom 判定严格模式开关 | true | true | 2.7.49-beta.4及以上版本 |
app_life_cycle_swizzle | bool | 是否 hook app delegate 开关 | true | true | 2.7.50-beta 及以上版本 |
vmmap_with_malloc_zone | bool | vmmap 信息采集是否采集 malloc zone 信息 | false | false | 2.7.51及以上版本 |
memory_check_interval | int | 内存信息更新频率间隔 | 1000 | 1000 | 2.7.53及以上版本 |
FOOM 监控
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
malloc_stack_enable_sample_ratio | float | foom 采样比例,0-1,SDK 随机采样,精度 0.0001 | 0 | 0.1 | - |
backtrace_recording_enable | bool | 开启异步调用堆栈记录,开启有一定性能损失,默认关闭 | false | false | 2.7.45及以上版本 |
malloc_stack_storage_threshold | int | 本地内存堆栈记录存入缓存的最小阈值,单个堆栈分配累积分配到达次值,会记录 | 524288 | 524288 | - |
malloc_size_record_thresholds | array | 本地内存堆栈记录的 size 阈值区间数组,用户命中其中一组 size 区间,内存分配在此区间时才抓栈记录 | 见下方字段含义说明 | - | 2.7.17及以上版本 |
malloc_size_record_thresholds 中每个子配置的字段含义
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
min | long | 单次内存分配需要记录的最小值,阈值区间的下限,包含min本身 | 8192 | 8192 | 2.7.17及以上版本 |
max | long | 单次内存分配需要记录的最大值,阈值区间的上限,不包含max本身 | LONG_MAX | 112589 | 2.7.17及以上版本 |
stack_cache_max_count | long | 堆栈记录的最大数量 | 300000 | 300000 | 2.7.17及以上版本 |
VC 内存泄漏监控
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
filter_list | array | 白名单列表,列表中 vc 不受监控 | [] | ["BuglyViewController"] | 2.7.51及以上版本 |
大内存分配监控
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
chuck_threshold | int | 判定为大内存分配的阈值 | ULONG_MAX | 10485760 | - |
内存详情监控
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
dump_threshold | int | 内存图 dump阈值,当物理内存使用量到达次值时,触发内存图 dump 操作 | ULONG_MAX | 4294967296 | - |
dump_threshold_rate | float | 内存图 dump 阈值比,当设置此值时,会使用设备物理内存值与此值的乘积作为内存图触发 dump的阈值 | 0 | 0.4 | 2.7.39.2及以上版本 |
dump_type | string | 内存图 dump 类型,可选值有 DumpFull、DumpLight、DumpTiny,非以上值均认为 DumpNone | DumpFull | DumpTiny | 2.7.39.2及以上版本 |
说明:
DumpFull 包含引用关系的内存图数据,Dump 消耗较大。
DumpLight:不包含引用关系,仅有类型信息,Dump 消耗较小。
DumpTiny:仅包含大小信息,Dump 消耗很小。
崩溃监控
bugly crash 功能开关,无特殊字段,不配置时默认开启。支持2.7.49及以上版本。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
use_jce_report | bool | 是否使用 json 上报 | 0 | 0 | 2.7.50及以上版本 |
disable_unhandled_crash | bool | 是否支持上报自定义 crash 堆栈 | 1 | 0 | 2.7.51及以上版本 |
错误监控
自定义错误上报开关,不配置时默认开启。支持2.7.49及以上版本。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
use_jce_report | bool | 是否使用 json 上报 | 0 | 0 | 2.7.50及以上版本 |
Crash zombie检测
zombie 检测能力开关,支持2.7.1及以上版本。
Crash 自定义附件上传控制
crash 自定义文件上传,默认关闭。支持2.7.39及以上版本。
Crash minidump 采集控制
crash minidump 附件信息,开启后会在 crash 时采集 minidump 信息并在二次启动上报,默认关闭。支持2.7.55及以上版本。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
minidump_file_size | int | minidump mmap 文件的大小 | 256 * 1024 | 256 * 1024 | 2.7.55及以上版本 |
Crash 公共附件上传控制
crash common_file 公共附件上传能力,客户端可以为每个事件上传不同文件名的附件,默认打开。支持2.7.55及以上版本。
启动指标采集控制
启动指标相关配置,控制后台进前台指标是否上报,默认关闭,冷启动不受控制。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
enabled | bool | 后台返回的开关,不用配置 | 0 | 0 | (-, 2.7.49) |
application_resume_beacon_report_sample | float | 后台进前台耗时灯塔上报抽样配置 | 0 | 0.1 | (-, 2.7.49) |
cold_launch_beacon_report_sample | float | 冷启动灯塔上报抽样开关 | 0 | 0.1 | (-, 2.7.49) |
冷启动指标采集控制
冷启动指标相关配置,无配置默认开启。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
enabled | bool | 后台返回的开关,不用配置 | 1 | 0 | 2.7.49及以上版本 |
cold_launch_beacon_report_sample | float | 冷启动灯塔上报抽样开关 | 0 | 0.1 | 2.7.49及以上版本 |
后台进前台指标采集控制
后台进前台指标相关配置,无配置默认开启。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
enabled | bool | 后台返回的开关,不用配置 | 1 | 0 | 2.7.49及以上版本 |
application_resume_beacon_report_sample | float | 后台进前台耗时灯塔上报抽样配置 | 0 | 0.1 | 2.7.49及以上版本 |
metric kit 采集控制
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
available_report_types | array | 配置允许上报 metrickit 上报的类型,默认为空,空或未配置则不进行任何过滤 | null | - | 2.7.55-beta.6及以上版本 |
DAU 采集控制
DAU 上报开关,默认开启。支持2.7.49及以上版本。
推荐配置:
{"name": "common.dau","sample_ratio": 1,"daily_report_limit": 10000}
操作路径采集控制
vc 操作路径上报开关,sdk 2.7.3(不包含)之后添加。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
max_operation_seq_count | uint | 最大记录的条数,最大50 | 20 | 50 | 2.7.3及以上版本 |
10分钟流量采集控制
流量异常监控,开启后,App 流量监控将变为更细粒度,每10min汇总上报一次,超过对应阈值,将上报对应网络请求详情。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
total_limit_in_megabyte | uint | 总流量异常阈值,单位 MB | 500 | 500 | 2.7.51及以上版本 |
mobile_limit_in_megabyte | uint | 蜂窝网络异常阈值,单位 MB | 200 | 200 | 2.7.51及以上版本 |
background_limit_in_megabyte | uint | 后台网络异常阈值,单位 MB | 50 | 50 | 2.7.51及以上版本 |
页面性能采集控制
页面打开耗时,开启后会上报 App 各个 UIViewController 打开的耗时,默认关闭。支持2.8.0-beta及以上版本。
Harmony 配置项
崩溃是100%上报,不支持采样。除崩溃外,其他监控能力都支持采样,默认是全部关闭。
需要在 终端性能监控 Pro > 应用配置 > SDK 配置 中,修改配置开关,指定监控项的采样率。
在接入期间,建议全采样,即将所有采样率调整为1.0,方便验证数据上报。接入完成后,再根据需要调整采样率。或者创建多个配置任务,根据版本类型(对应初始化的 buglyconfig.buildConfig),配置开发任务、灰度任务,以及正式任务。开发任务打开所有的监控项,灰度阶段按需采样,正式发布根据需要降低采样。
各监控项的配置参数说明如下。
质量监控
监控项 | 配置项 | 配置参数 | 取值说明 |
错误上报 | "error_report" | "sample_ratio" | 错误的上报采样率,取值[0,1]。 1表示全部上报 0表示不上报 其他表示用户抽样上报 |
卡顿监控
监控项 | 配置项 | 配置参数 | 取值说明 |
卡顿指标 | "looper_metric" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |
| | "daily_report_limit" | 设备每日上报卡顿指标的最大次数,默认值300,单位次数 |
| | "loop_time_out_threshold" | 设置卡顿指标统计时,超时消息的判定阈值,默认值150,单位ms |
卡顿个例 | "looper_stack" | "sample_ratio" | 设备采样率,取值[0,1]。 1表示全部打开 0表示全部关闭 其他表示按指定概率抽样打开 |