問題背景
華為AppGallery Connect的性能管理服務,可以做應用性能的監(jiān)控與檢測,可實時了解應用的性能情況,可以說是非常實用的應用性能管理服務。
經過分析對比,我們選用并且集成了該服務。在具體監(jiān)測與使用的時候,發(fā)現提供的分析報告還是非常有用的,特別是ANR分析和網絡分析選項。
但是在使用網絡分析的時候,發(fā)現在具體的網絡請求中,發(fā)現請求數(即下圖中的樣本數)已經過百了,但是一直沒有會話數。
問題原因
同樣的請求,請求數也相差不大, 但是為何上圖中的版本就沒有會話數據。是需要請求數需要達到一定上線,才能觸發(fā)會話數據嗎?根據歷史經驗,去官網提工單聯系華為技術來解答該問題。
華為技術支持給出的專業(yè)答復是:
1、會話是以應用交互維度的。應用從后臺回到前臺,就會生成一個新的會話。。
2、為了防止頻繁的采集App會話,導致流量和CPU資源的過多消耗,當前APM對會話是進行采樣控制的。
3、當前的會話采樣率默認為1%,簡單來說,當一臺設備會話數達到100時,必定會有一次會話被抽樣上報,生成一次會話數據。
4、目前建議線上使用默認值即可,線下測試場景可適當提高:可以采用如下代碼手動設置會話采樣率:
<application>
<!-- Set this value to '2.0', means there are only 1% sessions can sample cpu and memory. -->
<meta-data
android:name="sessions_sampling_percentage"
android:value="2.0" />
</application>
詳細可以參考配置采樣率的官方文檔如下,當然對華為性能管理服務感興趣的可以參考以下文檔:
1、應用性能管理服務開發(fā)指南:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-apms-introduction
2、應用性能管理服務API參考:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-References/apms-overview