跳转到主要内容
PRODUCT DOCUMENTS

快速找到所需文档,高效完成接入与排障

浏览产品文档与友盟 Skill,展开目录并阅读正文。

U-APM SDK上报策略

iOS SDK上报策略

错误类型

上报策略

Swift/Objective-C/自定义异常/C#(仅限Unity)/卡顿/OOM

下次启动时上报

启动/网络/H5页面分析

实时上报

内存指标

默认间隔10分钟后上报,如有修改以实际为准

原生页面

【页面采集】:1、目前版本sdk只采集页面创建的时间,非创建页面过程不做采集;2、采集开始:从页面创建的第一个生命周期方法开始计算;采集结束:页面创建的最后一个生命周期方法结束;3、落盘逻辑:页面采集结束即持久化到本地,聚合10分钟数据打性能报文上报 【帧率采集】1、采集开始:从页面创建完成开始采集帧率信息;采集结束:页面切换或采集时长达到上限则结束采集;2、sdk默认采集规则:1秒钟采集一次,采集6次持久化到文件记录到协议中的一条数据,聚合1分钟的数据,最长采集5分钟3、落盘逻辑:聚合10分钟数据打性能报文上报

单设备单日日志量上限为5MB

如果设备当前没有联网,会在联网后尝试发送

Android U-APM SDK 上报策略

如果您创建了自定义异常,则需要存在自动采集的崩溃/ANR发生时一起上报

测试中请关注SDK上报策略,当日单设备达到限制后无法再上报数据

错误类型

上报策略

Java

崩溃捕获后会尝试立刻发送,如果失败就下次启动发送同时通过流量 + 数量的限制,详细请见下方表格

Native

ANR

自定义异常

发生后跟随Java/Native/ANR 错误上报。专业版可以在专业版管理中修改配置为立即上报

卡顿/启动/网络/H5页面分析

实时上报

原生页面

【页面采集】:1、目前版本sdk只采集页面创建的时间,页面back等非创建页面的过程不做采集;2、采集开始:从页面创建的第一个生命周期方法开始计算;采集结束:页面创建的最后一个生命周期方法结束;3、落盘逻辑:页面采集结束即持久化到本地,聚合1分钟数据打性能报文;发送逻辑:默认延迟1秒钟开始上报,冷启动时延迟1秒钟上报所有类型数据 【帧率采集】1、采集开始:从页面创建完成开始采集帧率信息;采集结束:页面切换或采集时长达到上限则结束采集;2、sdk默认采集规则:1秒钟采集一次,采集6次持久化到文件记录到协议中的一条数据,聚合1分钟的数据,最长采集5分钟3、落盘逻辑:聚合1分钟数据打性能报文;发送逻辑:默认延迟1秒钟开始上报,冷启动时延迟1秒钟上报所有类型数据

错误上报的流量+数量限制:

目前默认值

允许保留在崩溃日志目录 mCrashLogsFolderName 下最大的崩溃日志条数。在生成日志前,如果发现崩溃日志文件数达到限制的条数,就会删除最早生成的那条崩溃日志。每删除一条崩溃日志,统计项 CrashStatKey.LOG_ABANDONED_FILE 和 CrashStatKey.LOG_ABANDONED_BUILTIN_FILE 都会加 1

15

允许保留在崩溃日志目录 mCrashLogsFolderName 下最大的自定义日志数。在生成自定义日志前,如果发现自定义日志文件数达到限制,就会删除最早生成的那个自定义日志。每删除一条自定义日志,统计项 CrashStatKey.LOG_ABANDONED_FILE 和 CrashStatKey.LOG_ABANDONED_CUSTOM_FILE 都会加 1。

10

java 崩溃日志中,获取 logcat 的最大行数

1500

native 崩溃日志中,获取 logcat 的最大行数

3000

anr 日志中,获取 logcat 的最大行数

1000

是否同步上传主进程初始化过程中产生的崩溃日志。开启该选项时,如果 SDK 检测到主进程发生崩溃,在生成完该崩溃日志后,SDK 会尝试立即将崩溃日志上传(以防止该场景下的稳定崩溃收集不到)。该开关仅在 java 和 native 崩溃中生效,自定义日志无效。SDK 判断主进程的条件为:Package Name 与 /proc/self/cmdline 中的进程名相等。

true

是否生成完日志后立即上传。该开关针对除自定义日志以外的日志有效,自定义日志由日志生成时指定是否立即上传。

true

是否在发现 APP 当前的版本与上次运行时的版本不一致时,清除所有的崩溃统计数据。版本是否一致,是根据版本号 VersionInfo.mVersion、子版本号 VersionInfo.mSubVersion、打包流水号 VersionInfo.mBuildId 判断,任何一个不一样,都会认为是不同版本。

false

是否在生成完崩溃日志后,使用 gz 算法压缩崩溃日志。压缩成功后,原日志被删除;压缩失败,原日志将保留

true

是否在生成完崩溃日志后,使用默认算法加密崩溃日志。加密成功后,原日志被删除;加密失败,原日志将保留

false

生成日志时,每个日志允许写入的最大字节数。 当达到指定的字节数时,会将剩余的全部丢弃。日志的总长度、丢弃字节数等信息,在日志最后会有记录。对 JAVA, NATIVE, ANR 日志都有效;为 <= 0 的值时,表示不限制。

1024*1024

在上传崩溃日志时,上传的单个日志允许的最大字节数。超过此限制时,将放弃上传该日志并直接删除,同时将统计项 CrashStatKey.LOG_LARGE_FILE加 1 。其对所有类型的日志有效。为 <= 0 的值时,表示不限制。

800*1024

每24小时内,允许上传日志总共的最大字节数。超过时,将放弃日志的上传,日志将保留在磁盘;超过 24 小时后,再次调用上传接口时,再上传日志。为 < 0 的值时,表示不限制。每次尝试上传发现达到该限制时,统计项 CrashStatKey.LOG_UPLOAD_LIMIT 和 CrashStatKey.LOG_UPLOAD_BYTES_LIMIT 都会加 1。

1.5*1024*1024

每 24 小时内上传的最大崩溃日志条数。每次尝试上传发现达到该限制时,统计项 CrashStatKey.LOG_UPLOAD_LIMIT 和 CrashStatKey.LOG_UPLOAD_BUILTIN_LIMIT 都会加 1。其自版本 3.0.0 从 mMaxUploadCrashLogCountPerDay 重命名而来。

25

每 24 小时内上传的最大自定义日志条数。每次尝试上传发现达到该限制时,统计项 CrashStatKey.LOG_UPLOAD_LIMIT 和 CrashStatKey.LOG_UPLOAD_CUSTOM_LIMIT 都会加 1。

20

每 24 小时内每种自定义类型的日志允许生成的最大条数。不同类型的自定义日志条数会分别计数。

6

每个进程允许生成的最大 ANR 日志条数。

3

崩溃生成日志后,不自动重启

true

是否在 SDK 处理完 java 异常且生成完 java 崩溃日志后,将异常信息通知给 SDK 初始化之前,其他人(系统)注册的 UncaughtExceptionHandler。

true

是否在 SDK 处理完 native 崩溃信号且生成完 native 崩溃日志后,将崩溃信号通知给 SDK 初始化之前,其他人(系统)注册的信号处理函数。

false

自动更新当前 CPU 使用率等信息的时间间隔,单位为秒(s)。

50