前提条件
在 app 级别的 build.gradle 中配置了 qapm-plugin 插件,请参见 集成和初始化。
目前只支持 okhttp3监控。okhttp3还依赖 okio 1.14.0以上的库版本。
开启功能
原生层网络监控以及大模型 SSE 监控需要使用 qapmplugin 插件进行插桩才可使用,默认会插在网络层的各个出入口。
配置步骤
在 app 目录的 proguard-rules.pro 文件里增加混淆规则,防止 okttp3的代码被混淆。
-keep class com.squareup.okhttp3.**{*;}


相关接口
/*** 设置网络请求的响应 header 黑名单,在黑名单中的 header key 将不会采集上报*/public static final int PropertyKeyHttpBlackHeader = 313;/*** 设置域名白名单,如果设置了,则只有白名单中的域名请求才监控*/public static final int PropertyKeyHttpWhiteDomain = 314;/*** 设置域名黑名单,如果设置了,在黑名单中的域名将不会监控*/public static final int PropertyKeyHttpBlackDomain = 315;/*** 设置域名黑名单,如果设置了,在黑名单中的域名将不会监控*/public static final int PropertyEnableDefaultDial = 319;
代码示例
/*** 设置网络请求的响应 header 黑名单,在黑名单中的 header key 将不会采集上报*/List<String> blackHeader = new ArrayList<>();blackHeader.add("");blackHeader.add("x-nws-log-uuid");QAPM.setProperty(QAPM.PropertyKeyHttpBlackHeader, blackHeader);/*** 设置域名黑名单,如果设置了,在黑名单中的域名将不会监控*/List<String> blackDomain = new ArrayList<>();blackDomain.add("21.54.255.67");blackDomain.add("9.134.164.160");QAPM.setProperty(QAPM.PropertyKeyHttpBlackDomain, blackDomain);/*** 设置域名白名单,如果设置了,则只有白名单中的域名请求才监控*/List<String> WhiteDomain = new ArrayList<>();WhiteDomain.add("21.54.255.67");WhiteDomain.add("9.134.164.160");QAPM.setProperty(QAPM.PropertyKeyHttpWhiteDomain, WhiteDomain);/*** 默认拨测相关接口的设置,设置为true后,会打开默认拨测功能*/QAPM.setProperty(QAPM.PropertyEnableDefaultDial, true);
注意:
原生网络监控默认监控所有 url,可通过上面的黑白名单接口来决定是否进行过滤,在同时设置了域名白名单和域名黑名单接口的时候,只有域名白名单的设置才会生效,建议优先使用白名单设置。
从5.5.6-pub 版本开始,开启默认拨测功能后会根据网络监控的慢错结果进行执行,执行结果参照移动拨测。
校验功能是否正常
检索 TAG:QAPM_manager_QAPMPluginManager


检索 TAG: [plugin::142]
每次网络请求后1分钟,如打印以下日志,则代表网络数据上报成功:


注意:
需要使用 qapmplugin 插件进行插桩才可用,否则无效;大模型 SSE 监控需要发起对应的 SSE 监控请求,否则无效。
SDK 只负责抓取网络请求的相关信息,问题数据由后台分析,如慢请求(请求时间大于 xxs),网络错误(请求响应码 > 400)。
数据在 终端性能监控 > 网络 > 慢请求和错误请求列表 中查看。