性能测试 基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程

简介: 性能测试 基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程

基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程

 

 

 

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

 

目录
相关文章
|
3月前
|
算法 搜索推荐 JavaScript
基于python智能推荐算法的全屋定制系统
本研究聚焦基于智能推荐算法的全屋定制平台网站设计,旨在解决消费者在个性化定制中面临的选择难题。通过整合Django、Vue、Python与MySQL等技术,构建集家装设计、材料推荐、家具搭配于一体的一站式智能服务平台,提升用户体验与行业数字化水平。
|
3月前
|
存储 分布式计算 大数据
基于Python大数据的的电商用户行为分析系统
本系统基于Django、Scrapy与Hadoop技术,构建电商用户行为分析平台。通过爬取与处理海量用户数据,实现行为追踪、偏好分析与个性化推荐,助力企业提升营销精准度与用户体验,推动电商智能化发展。
|
4月前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
443 1
|
3月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的台风灾害分析及预测系统
针对台风灾害预警滞后、精度不足等问题,本研究基于Python与大数据技术,构建多源数据融合的台风预测系统。利用机器学习提升路径与强度预测准确率,结合Django框架实现动态可视化与实时预警,为防灾决策提供科学支持,显著提高应急响应效率,具有重要社会经济价值。
|
3月前
|
机器学习/深度学习 大数据 关系型数据库
基于python大数据的青少年网络使用情况分析及预测系统
本研究基于Python大数据技术,构建青少年网络行为分析系统,旨在破解现有防沉迷模式下用户画像模糊、预警滞后等难题。通过整合多平台亿级数据,运用机器学习实现精准行为预测与实时干预,推动数字治理向“数据驱动”转型,为家庭、学校及政府提供科学决策支持,助力青少年健康上网。
|
4月前
|
机器学习/深度学习 人工智能 测试技术
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读
EdgeMark是一个面向嵌入式AI的自动化部署与基准测试系统,支持TensorFlow Lite Micro、Edge Impulse等主流工具,通过模块化架构实现模型生成、优化、转换与部署全流程自动化,并提供跨平台性能对比,助力开发者在资源受限设备上高效选择与部署AI模型。
463 9
EdgeMark:嵌入式人工智能工具的自动化与基准测试系统——论文阅读

热门文章

最新文章

推荐镜像

更多