基于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.使用方法
AndroidMonitor\conf\influxDB.conf
[INFLUXDB]
influxdb_host = 10.203.25.106
influxdb_port = 8086
AndroidMonitor\conf\monitor_scope.conf
[DEVICE]
choice = 0
[PACKAGE]
choice = 1
配置说明:
choice = 1 监控全部设备(应用包) 0 监控device_and_package.conf配置的设备及对应应用包,目前 PACKAGE节点下的choice配置不起做用,即只监控配置的应用包
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]节点下的“自定义设备标识”不能重复,每一个[设备序列号]下的“自定义软件包标识不能重复
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(采集时长/采样频率)
注:部分细节未体现
源码下载: