【问题描述】
开发者按照文档集成了APMS SDK,但是在AGC后台没有数据,需要帮忙定位。
【问题分析】
后台没有性能数据的原因有很多,要从端侧和与云侧进行定位分析。
1. 首先需要查看端侧的调试日志,调试日志可以直观的看到性能信息的收集与上报动作。
打开调试模式方法,在应用的AndroidManifest.xml文件中添加<meta-data>元素,其中android:value设置为true:
<application>
<!-- Set this flag to 'true', debug logs of APM will be printed in logcat, default value is 'false'-->
<meta-data
android:name="apms_debug_log_enabled"
android:value="true" />
</application>
然后在logcat日志中过滤com.huawei.agc.apms的相关日志:
2. 调试日志中可以看到性能数据的sending和contains日志,但是没有上报成功的日志信息,正常的上报成功日志如下,TAG为APMS,resultCode为200代表上报成功,后面有数据的erqID。
I/HiAnalyticsSDK: SendMission=> events PostRequest sendevent TYPE : oper, TAG : APMS, resultCode: 200 ,reqID:b639daae0490c378cf242544916a9c36
3. 出现上述情况,一般是因为开发者在开通性能管理服务前就下载了json文件到项目中,开通服务后,json文件会进行更新,所以要重新下载json文件导入项目中。
4. 开发者更新了json后重新尝试上报,可以看到如下上报成功的日志,但是后台依然没有数据。
5. 上图的日志是正常的,内容没有看出什么问题,一般数据上报时机是在应用从前台退出时会触发上报一次数据、性能数据缓存大小达到10KB时会触发上报一次数据。两个条件都满足了,但是后台还是没有数据。后来突然发现调试日志的系统时间好像不太对,还是前一天凌晨的时间,系统时间不对当然会影响数据的上报的,虽然日志显示上报成功,但是却是前一天的时间,系统时间与上报时间不一致,后台可能会当成无效数据不作展示的。
6. 开发者修改了测试手机的系统时间后,再上报一次就可以在后台看到数据展示了,问题解决。
【解决方案】
1. 更新json文件。
2. 调整为正确的系统时间。