本文将说明如何合规地使用应用性能监控全链路版(以下简称APMPlus)。我们将从APMPlus SDK收集的字段、如何规范使用APMPlus SDK、推荐的检查方法以及相关规定汇总三个方面帮助合作伙伴打消疑虑、规避风险。
首先,APMPlus SDK收集的字段,不会涉及用户个人身份信息,仅涉及移动终端设备用以分析App和设备本身的异常和性能问题,帮助企业合作伙伴的研发定位和分析异常。
具体采集的字段,请参见SDK开发者使用合规规范。
APMPlus SDK申请的权限信息如下:
OS | 权限 | 何时申请 | APMPlus使用场景 |
---|---|---|---|
iOS | 网络访问模式 | 初始化读取 | 分析设备网络情况时需要 |
Android | 读取手机状态(设备IMSI/IMEI号) | 初始化读取 | 用于生成设备唯一标识,即Device_ID,计算设备数 |
Android | 读取外置存储器 | 初始化读取 | 读取保存的临时数据 |
Android | 写入外置存储器 | 初始化保存 | 保存临时数据 |
iOS客户端
采集字段名称 | 用途说明 | 采集方式 | 替代方案 |
---|---|---|---|
设备ID(IDFV) | 用于日志流分析,通过设备ID可以在 APMPlus 上查看某台设备的异常信息流,便于排查问题 | 系统方法获取 IDFV,后端服务根据该字段生成唯一标识 | 参考接入文档获取设备数与用户数使用自定义的设备ID |
设备型号 | 用于多维分析和筛选,查看异常问题在不同机型上的发生情况 | 系统方法获取 | 无 |
操作系统 | 区分异常发生的操作系统类型(Android / iOS) | 固定字段 | 无 |
系统时区 | 用于异常分析,分析不同时区发生的异常问题 | 系统方法获取 | 无 |
屏幕分辨率 | 用于异常分析,分析可能由于分辨率导致的异常问题 | 系统方法获取 | 无 |
磁盘使用情况 | 用于异常分析,判断异常发生是否是由于磁盘空间不足导致的 | 系统方法获取 | 无 |
内存使用情况 | 用于异常分析,判断异常发生是否是由于内存空间不足导致的 | 系统方法获取 | 无 |
运行线程数 | 用于异常分析,分析不同线程的运行状况 | 系统方法获取 | 无 |
CPU信息 | 用于异常分析,分析不同CPU架构可能的兼容问题 | 系统方法获取 | 无 |
移动设备国家编码(MCC) | 用于确定网络运营商 | 系统方法获取 | 无 |
移动设备网络编码(MNC) | 用于确定网络运营商 | 系统方法获取 | 无 |
应用版本 | 用于多维分析和筛选,查看异常问题在不同应用版本上的发生情况 | 系统方法获取 | 无 |
应用程序包名称 | 用于异常分析,分析不同程序包的异常问题 | 系统方法获取 | 无 |
进程启动时间 | 用于启动分析,分析APP启动链路的耗时情况 | 系统方法获取 | 无 |
崩溃时间 | 用于日志流分析,结合APP的其他日志进行异常分析 | 系统方法获取 | 无 |
崩溃线程名 | 用于异常分析,分析发生异常的线程 | 系统方法获取 | 无 |
活动过的页面名称 | 用于异常分析,通过活动页面进行场景复现排查问题 | 系统方法获取 | 在接入 SDK 时不要接入 UITrackers 子库 |
当前进程所有线程堆栈 | 用于异常分析,分析异常发生时APP的运行状况 | 系统方法获取 | 无 |
应用内语言 | 用于异常分析,分析由于系统语言导致的兼容问题 | 系统方法获取 | 无 |
应用发布渠道 | 用于多维分析和筛选,分析不同渠道下的异常问题 | 初始化输入信息 | 无 |
系统国家/区域信息 | 用于多维分析和筛选,分析不同区域的异常问题分布 | 服务端根据IP地址获取 | 无 |
用户ID | 用于日志流分析,通过用户ID可以在 APMPlus 上查看某位用户的异常信息流,便于排查问题 | 初始化输入信息 | 不调用设置 userID 的方法即可 |
IP地址 | 用于地域分析,分析不同区域的异常问题分布 | 服务端根据网络请求获取 | 无 |
运营商信息 | 用于多维分析和筛选,分析由于运营商导致的网络问题 | 系统方法获取 | 无 |
网络访问模式 | 用于多维分析和筛选,分析不同网络状况下的问题 | 系统方法获取 | 无 |
Android客户端
采集字段名称 | 用途说明 | 采集方式 | 替代方案 |
---|---|---|---|
设备ID | 用于日志流分析,通过设备ID可以在 APMPlus 上查看某台设备的异常信息流,便于排查问题 | 服务器计算生成的唯一标识 | 参考接入文档步骤二:初始化SDK和开启监控,使用自定义的设备ID |
设备型号 | 用于多维分析和筛选,查看异常问题在不同机型上的发生情况 | 系统方法获取 | 无 |
操作系统 | 区分异常发生的操作系统类型(Android / iOS) | 固定字段 | 无 |
系统时区 | 用于异常分析,分析不同时区发生的异常问题 | 系统方法获取 | 无 |
屏幕分辨率 | 用于异常分析,分析可能由于分辨率导致的异常问题 | 系统方法获取 | 无 |
磁盘使用情况 | 用于异常分析,判断异常发生是否是由于磁盘空间不足导致的 | 系统方法获取 | 无 |
内存使用情况 | 用于异常分析,判断异常发生是否是由于内存空间不足导致的 | 系统方法获取 | 无 |
运行线程数 | 用于异常分析,分析不同线程的运行状况 | 系统方法获取 | 无 |
CPU信息 | 用于异常分析,分析不同CPU架构可能的兼容问题 | 系统方法获取 | 无 |
移动设备国家编码(MCC) | 用于确定网络运营商 | 系统方法获取 | 无 |
移动设备网络编码(MNC) | 用于确定网络运营商 | 系统方法获取 | 无 |
应用版本 | 用于多维分析和筛选,查看异常问题在不同应用版本上的发生情况 | 系统方法获取 | 无 |
应用程序包名称 | 用于异常分析,分析不同程序包的异常问题 | 系统方法获取 | 无 |
进程启动时间 | 用于启动分析,分析APP启动链路的耗时情况 | 系统方法获取 | 无 |
崩溃时间 | 用于日志流分析,结合APP的其他日志进行异常分析 | 系统方法获取 | 无 |
崩溃线程名 | 用于异常分析,分析发生异常的线程 | 系统方法获取 | 无 |
活动过的页面名称 | 用于异常分析,通过活动页面进行场景复现排查问题 | 系统方法获取 | 无 |
当前进程所有线程堆栈 | 用于异常分析,分析异常发生时APP的运行状况 | 系统方法获取 | 无 |
应用内语言 | 用于异常分析,分析由于系统语言导致的兼容问题 | 系统方法获取 | 无 |
应用发布渠道 | 用于多维分析和筛选,分析不同渠道下的异常问题 | 初始化输入信息 | 无 |
系统国家/区域信息 | 用于多维分析和筛选,分析不同区域的异常问题分布 | 服务端根据IP地址获取 | 无 |
用户ID | 用于日志流分析,通过用户ID可以在 APMPlus 上查看某位用户的异常信息流,便于排查问题 | 初始化输入信息 | 不调用设置 userID 的方法即可 |
IP地址 | 用于地域分析,分析不同区域的异常问题分布 | 服务端根据网络请求获取 | 无 |
运营商信息 | 用于多维分析和筛选,分析由于运营商导致的网络问题 | 系统方法获取 | 无 |
网络访问模式 | 用于多维分析和筛选,分析不同网络状况下的问题 | 系统方法获取 | 无 |
安卓ID | 用于服务器计算生成设备的唯一标识 | 系统方法获取 | 无 |
设备品牌 | 用于多维分析和筛选,分析不同设备品牌下的问题 | 系统方法获取 | 无 |
操作系统api版本 | 用于多维分析和筛选,分析不同操作系统api版本下的问题 | 系统方法获取 | 无 |
电池电量 | 用于电量监控分析 | 系统方法获取 | 无 |
网络流量 | 用于电量监控分析 | 系统方法获取 | 无 |
设备abi | 用于多维分析和筛选,分析不同设备abi下的异常问题 | 系统方法获取 | 无 |
ROM | 用于多维分析和筛选,分析不同ROM下的异常问题 | 系统方法获取 | 无 |
fd列表 | 用于异常分析,分析由于fd使用导致的异常问题 | 系统方法获取 | 无 |
应用服务日志信息 | 用于异常分析,提供归因信息 | 系统方法获取 | 无 |
以下是我们建议您查询的规定和检查方法。