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

 

 

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

  By: 授客 QQ:1033553122android

 

 

1. 測試環境 git

2. 實現功能 shell

3. 使用前提 網絡

4. 使用方法 測試

influxDB主機配置 spa

monitor_scope.conf監控範圍配置 3d

device_with_package.conf設備和應用包配置 blog

sample_type.conf 配置 flux

運行程序 

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.使用前提

一、有adb命令執行權限

 

二、設備已鏈接

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 = 不須要採集的項目,用逗號分隔,大小寫不敏感,沒有則保持爲空

 

說明:

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

二、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

相關文章
相關標籤/搜索