性能測試 基於Python結合InfluxDB及Grafana圖表實時監控Android系統和應用進程


 

 

基於Python結合InfluxDB及Grafana圖表實時監控Android系統和應用進程

  By: 授客 QQ:1033553122

 

 

1. 測試環境 

2. 實現功能 

3. 使用前提 

4. 使用方法 

influxDB主機配置 

monitor_scope.conf監控范圍配置 

device_with_package.conf設備和應用包配置 

sample_type.conf 配置 

運行程序 

grafana圖表配置 

數據源配置 

Dashboard變量配置 

Dashboard Pannel配置參考 

效果展示 

 

 

1.測試環境

python 3.4

 

CentOS 6 64位(內核版本2.6.32-642.el6.x86_64)

 

influxdb-1.5.2.x86_64.rpm

網盤下載地址:

https://pan.baidu.com/s/1jAbY4xz5gvzoXxLHesQ-PA

 

 

grafana-5.1.2-1.x86_64.rpm

下載地址:

https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-5.1.3-1.x86_64.rpm

下載地址:https://pan.baidu.com/s/1wtnPH-iYxaXc6FnL1i0ZVg

 

 

influxdb-5.0.0-py2.py3-none-any.whl

下載地址:

https://pypi.org/project/influxdb/#files

下載地址:https://pan.baidu.com/s/1DQ0HGYNg2a2-VnRSBdPHmg

 

 

2.實現功能

基於Python結合InfluxDB及Grafana圖表實時監控Android系統和應用進程,支持同時對台設備,多個應用進程(基於android應用包)進行監控,支持cpu,內存,電量,網絡,進程cpu,進程內存占用,進程網絡收發,gfx幀率,丟幀數據信息采集。

 

 

3.使用前提

1、有adb命令執行權限

 

2、設備已連接

cmd進入AndroidMonitor/adb目錄

執行adb devices -l命令可看到對應設備,則表示設備已連接

 

 

4.使用方法

influxDB主機配置

AndroidMonitor\conf\influxDB.conf

[INFLUXDB]

influxdb_host = 10.203.25.106

influxdb_port = 8086

 

monitor_scope.conf監控范圍配置

AndroidMonitor\conf\monitor_scope.conf

 

[DEVICE]

choice = 0

 

[PACKAGE]

choice = 1

 

配置說明:

choice = 1 監控所有設備(應用包) 0 監控device_and_package.conf配置的設備及對應應用包,目前 PACKAGE節點下的choice配置不起作用,即只監控配置的應用包

 

device_with_package.conf設備和應用包配置

AndroidMonitor\conf\device_with_package.conf

 

[DEVICE]

dev1 = 192.168.192.101:5555

#dev2 = 192.168.242.102:5555

 

[192.168.192.101:5555]

pkg1 = com.android.calculator2

#pkg2=package:com.android.music

 

#[192.168.242.102:5555]

#pkg1 = com.android.calculator2

 

格式說明:

[DEVICE]

自定義設備標識 = 設備序列號

 

[設備序列號]

自定義軟件包標識 = 程序軟件包包名

 

# 代表注釋

如果不想監控指定設備(包括對應軟件包),用 # 號注釋掉設備的“自定義設備標識” 所在行即可,如上;

如果不想監控指定定軟件包,用 # 號注釋掉軟件包“自定義軟件包標識” 所在行即可,如上。

 

設備序列號獲取:

 

 

 

軟件包包名獲取

adb -s 設備序列號 shell "pm list packages | grep 包名模糊查找字符串"

 

 

 

注意:[DEVICE]節點下的“自定義設備標識”不能重復,每個[設備序列號]下的“自定義軟件包標識不能重復

 

sample_type.conf 配置

AndroidMonitor\conf\sample_type.conf

 

[SAMPLETYPE]

sample_type = cpu,proc_cpu,mem,proc_mem,battery,gfx,net,proc_net

filter =

 

說明:

sample_type = 需要采集的項目,目前支持采集項目如上,用逗號分隔,大小寫不敏感

filter = 不需要采集的項目,用逗號分隔,大小寫不敏感,沒有則保持為空

 

說明:

1、proc_cpu  進程cpu使用率,多cpu處理器的環境下,正常情況下,計算結果為 進程單核cpu使用率 x 邏輯cup數,程序運行時,如果獲取邏輯cpu數失敗,則邏輯cpu數設置為1,即計算結果為單核cpu使用率

2、gfx的采集,需要開啟“GPU呈現分析模式” 並設置模式“在adb shell dumpsys gfxinfo中”

 

 

 

fps相關指標說明,計算方法,參考鏈接:https://www.jianshu.com/p/6c0cfc25b038

運行程序

cd /d AndroidMonitor

python main.py 采集頻率(單位 秒) 采集時長

eg:

每5秒采集一次,總共采集120秒

python main.py 4 120

 

停止監控,關閉cmd窗口即可

 

 

 

注意:

如果(根據配置自動調整后的)采集頻率時間間隔大於單次程序采樣實際耗時,則處理完成后立即進行下一次采樣,忽略采樣頻率設置,實際采集時長變長,但是采集次數不變 int(采集時長/采樣頻率)

 

grafana圖表配置

數據源配置

 

 

Dashboard變量配置

 

 

 

Dashboard Pannel配置參考

注:部分細節未體現

 

 

效果展示

 

 

 源碼下載:

https://gitee.com/ishouke/AndroidMonitor

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM