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

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 性能测试 基于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

 

目录
相关文章
|
8天前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
49 0
|
15天前
|
人工智能 数据可视化 测试技术
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
AI 时代 API 自动化测试实战:Postman 断言的核心技巧与实战应用
205 11
|
9天前
|
机器学习/深度学习 算法 安全
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
【强化学习应用(八)】基于Q-learning的无人机物流路径规划研究(Python代码实现)
|
24天前
|
设计模式 缓存 运维
Python装饰器实战场景解析:从原理到应用的10个经典案例
Python装饰器是函数式编程的精华,通过10个实战场景,从日志记录、权限验证到插件系统,全面解析其应用。掌握装饰器,让代码更优雅、灵活,提升开发效率。
85 0
|
28天前
|
数据采集 存储 数据可视化
Python网络爬虫在环境保护中的应用:污染源监测数据抓取与分析
在环保领域,数据是决策基础,但分散在多个平台,获取困难。Python网络爬虫技术灵活高效,可自动化抓取空气质量、水质、污染源等数据,实现多平台整合、实时更新、结构化存储与异常预警。本文详解爬虫实战应用,涵盖技术选型、代码实现、反爬策略与数据分析,助力环保数据高效利用。
99 0
|
9天前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
180 102
|
9天前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
177 104
|
9天前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
173 103
|
9天前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
118 82
|
9天前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的多面手
Python:现代编程的多面手
24 0

推荐镜像

更多