SDK 功能配置项说明
配置组成
Bugly SDK 配置按照功能模块组织,每一个功能模块对应一个配置项,每个配置项是一个字典结构,以 K-V 的方式表示每一个配置字段。
为方便配置扩展,每个配置项包含以下固有字段:
name
: 配置项名称,其值为 string,不可或缺,后台和 SDK 均会根据此字段对应对应的配置项进行解析和应用;sample_ratio
: 功能采样率,其值为 float,不可或缺,后台会按照采样率进行计算,将是否命中采样的结果返回给 SDK,以决定是否开启对应的功能;daily_report_limit
: 每日最大上报量,其值为 int,可或缺,SDK 根据此值限制对应配置项下的数据上报最大值,避免因某些错误导致 SDK 大量上报数据;
每个配置项会包含其特有配置字段,下面就详细字段进进行介绍和解释。
配置项目及其字段
下列配置项中,并非所有的配置都是业务可直接修改,部分选项需要 Bugly 同行通过系统配置调整,可以联系 Bugly 小助手提供支持。
不推荐业务修改指标的配置,后续也会统一收归平台统一管理。业务可以查看自己的产品的指标配置,如果要修改,应该直接咨询Bugly小助手,由小助手创建工单,分配专人来修改。
监控名称 | 配置名称 |
---|---|
卡顿指标监控 | looper.fluency |
卡顿监控 | looper.hitches |
子线程卡顿监控 | looper.other.hitches |
ANR监控 | looper.deadlock |
启动抓栈 | looper.launch |
内存指标监控 | memory.metric |
FOOM监控 | memory.foom |
VC内存泄漏监控 | memory.vc_leak |
大块内存分配监控 | memory.big_chuck |
内存图监控 | memory.vmgraph |
启动监控 | launch.launch |
冷启动监控 | launch.cold_launch |
后台进前台监控 | launch.resume |
Crash zombie监控 | crash.zombie |
Crash 自定义文件上传 | crash.customfile |
Crash 获取C++异常调用栈 | crash.cppCallStack |
MetricKit监控 | metric_kit |
VC操作路径 | common.app_event |
流量指标 | traffic |
流量异常分析 | traffic_detail |
Crash minidump信息 | crash.minidump |
Crash公共附件上传能力 | crash.common_file |
页面打开耗时 | launch.page_launch |
looper.fluency
FPS&挂起率功能开关
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
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 | - |
looper.hitches
卡顿问题监控配置项
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
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 | 是否开启首帧抓栈优化,开启后会跳过前两帧,从第三帧开始抓栈。bool 值,0或者1 | 0 | 0 | (2.7.45, 2.7.47] |
looper.other.hitches
子线程卡顿问题监控配置项
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
threads | array | 子线程配置组 | 如下json示例 | - | (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, -) |
looper.deadlock
ANR 判断阈值,发生超过该阈值且没有恢复的卡顿问题时会被认为 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, -) |
looper.launch
慢启动抓栈,配置开启时,当启动耗时超过 launch_backtrace_threshold_ms 会开启抓栈,耗时超过 launch_deadlock_threshold_ms 时认为启动异常,上报数据到卡顿模块。可以通过自定义字段 "BuglyAppState" 为 "coldLaunch" 进行筛选。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
sample_ratio | bool | 启动异常监控抽样率 | 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, -) |
memory.metric
内存指标上报
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
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 - ) |
memory.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区间,内存你分配在此区间时才抓栈记录 | 如下json示例 | - | [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 -) |
memory.vc_leak
VC 内存泄漏相关配置。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
filter_list | array | 白名单列表,列表中vc不受监控 | [] | ["BuglyViewController"] | (2.7.51, -) |
memory.big_chuck
大内存分配个例上报
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
chuck_threshold | int | 判定为大内存分配的阈值 | ULONG_MAX | 10485760 | - |
memory.vmgraph
内存图监控
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
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消耗较大 DumpLigth: 不包含引用关系,仅有类型信息,Dump消耗较小 DumpTiny: 仅包含大小信息,Dump消耗很小
crash.crash
bugly crash 功能开关,无特殊字段,不配置时默认开启。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
- | - | 开关默认值 | 1 | - | (2.7.49, -) |
use_jce_report | bool | 是否使用 json 上报 | 0 | 0 | (2.7.50, -) |
disable_unhandled_crash | bool | 是否支持上报自定义crash堆栈 | 1 | 0 | (2.7.51, -) |
crash.user_exception
bugly 自定义错误上报开关,不配置时默认开启。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
- | - | 开关默认值 | 1 | - | (2.7.49, -) |
use_jce_report | bool | 是否使用 json 上报 | 0 | 0 | (2.7.50, -) |
crash.zombie
bugly zombie 检测能力开关,SDK 2.7.3 之后版本会 Crash。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
- | - | 开关默认值 | 0 | - | (2.7.1, -) |
crash.customfile
bugly crash 自定义文件上传,默认关闭。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
- | - | 开关默认值 | 0 | - | (2.7.39, -) |
crash.protoBufSerial
bugly crash pb 序列化开关,默认关闭。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
- | - | 开关默认值 | 0 | - | (2.7.43, -) |
crash.coredump
crash coredump 附件信息,开启后会在crash时采集coredump信息并在二次启动上报,默认关闭。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
- | - | 开关默认值 | 0 | - | (2.7.51, -) |
low_device_enable | bool | 低端机是否开启(iphone XR及以下机型为低端机) | 0 | 1 | (2.7.51, -) |
crash.minidump
crash minidump 附件信息,开启后会在crash时采集minidump信息并在二次启动上报,默认关闭。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
- | - | 开关默认值 | 0 | - | (2.7.55, -) |
minidump_file_size | int | minidump mmap文件的大小 | 256 * 1024 | 256 * 1024 | (2.7.55, -) |
crash.common_file
crash common_file 公共附件上传能力,客户端可以为每个事件上传不同文件名的附件,默认打开。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
- | - | 开关默认值 | 0 | - | (2.7.55, -) |
launch.launch
启动指标相关配置,控制后台进前台指标是否上报,默认关闭,冷启动不受控制。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
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) |
launch.cold_launch
冷启动指标相关配置,无配置默认开启
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
enabled | bool | 后台返回的开关,不用配置 | 1 | 0 | (2.7.49, -) |
cold_launch_beacon_report_sample | float | 冷启动灯塔上报抽样开关 | 0 | 0.1 | (2.7.49, -) |
launch.resume
后台进前台指标相关配置,无配置默认开启
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
enabled | bool | 后台返回的开关,不用配置 | 1 | 0 | (2.7.49, -) |
application_resume_beacon_report_sample | float | 后台进前台耗时灯塔上报抽样配置 | 0 | 0.1 | (2.7.49, -) |
示例
metric_kit
metric_kit 功能开关
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
available_report_types | array | 配置允许上报 metrickit 上报的类型,默认为空,空或未配置则不进行任何过滤 | null | - | (2.7.55-beta.6, -) |
common.dau
bugly DAU上报开关,默认开启。
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
- | - | 开关默认值 | 1 | - | (2.7.49, -) |
推荐配置
{
"name": "common.dau",
"sample_ratio": 1,
"daily_report_limit": 10000
}
common.app_event
vc 操作路径上报开关,sdk 2.7.3(不包含)之后添加
字段 | 类型 | 说明 | 默认值 | 示例 | 支持版本 |
---|---|---|---|---|---|
max_operation_seq_count | uint | 最大记录的条数,最大50 | 20 | 50 | (2.7.3, -] |
traffic
进程流量指标,开启后监控 App 每次生命周期内的流量使用情况
traffic_detail
流量异常监控,开启后,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, -] |
crash.cppCallStack
Crash 开启 Cpp 异常堆栈回溯支持,[2.7.55-beta -)
launch.page_launch
页面打开耗时,开启后会上报 App 各个 UIViewController 打开的耗时,默认关闭。(2.8.0-beta, -]