性能测试 基于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
性能测试 基于Python结合InfluxDB及Grafana图表实时监控Android系统和应用进程的更多相关文章
- 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据
基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据 by:授客 QQ:1033553122 实现功能 测试环境 环境搭建 使用前提 使用方法 运行程序 效果展 ...
- 性能测试 基于Python结合InfluxDB及Grafana图表实时采集Linux多主机或Docker容器性能数据
基于Python结合InfluxDB及Grafana图表实时采集Linux多主机性能数据 by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 3 使用前提 3 使用方法 ...
- 性能测试 CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据
CentOS下结合InfluxDB及Grafana图表实时展示JMeter相关性能数据 by:授客 QQ:1033553122 实现功能 1 测试环境 1 环境搭建 2 1.安装influxdb ...
- (转)使用InfluxDB+cAdvisor+Grafana配置Docker监控
文档来源 文档来源:How to setup Docker Monitoring 由garyond翻译.校正及整理 Docker监控简介 我们提供的Docker主机和容器越来越多,对Docker服务器 ...
- [工具开发] 分享两个基于Heapster 和 Influxdb 的 Grafana 监控仪表盘模板
Info Collector: Heapster - /heapster- --metric-resolution=30s- --sink=influxdb:http://influxdb.defau ...
- Jmeter + Grafana搭建实时监控可视化
小贴士: 建议使用jmeter3.3+版本,在这个版本以后才有backend listenter 对接influxDB. Jmeter中backend listenter如图 influxdbUr ...
- 基于 WebGL 的 HTML5 楼宇自控 3D 可视化监控
前言 智慧楼宇和人们的生活息息相关,楼宇智能化程度的提高,会极大程度的改善人们的生活品质,在当前工业互联网大背景下受到很大关注.目前智慧楼宇可视化监控的主要优点包括: 智慧化 -- 智慧楼宇是一个生态 ...
- 基于 HTML5 的 WebGL 楼宇自控 3D 可视化监控
前言 智慧楼宇和人们的生活息息相关,楼宇智能化程度的提高,会极大程度的改善人们的生活品质,在当前工业互联网大背景下受到很大关注.目前智慧楼宇可视化监控的主要优点包括: 智慧化 -- 智慧楼宇是一个生态 ...
- window平台基于influxdb + grafana + jmeter 搭建性能测试实时监控平台
一.influxdb 安装与配置 1.1 influxdb下载并安装 官网无需翻墙,但是下载跳出的界面需要翻墙,我这里提供下载链接:https://dl.influxdata.com/influxdb ...
随机推荐
- 游戏AI之初步介绍(0)
目录 游戏AI是什么? 游戏AI和理论AI 智能的假象 (更新)游戏AI和机器学习 介绍一些游戏AI 4X游戏AI <求生之路>系列 角色扮演/沙盒游戏中的NPC 游戏AI 需要学些什么? ...
- C#字符串的一些常用方法
字符串常用方法 string str =""; string[] strArray = str.Split('截取字符'); //按字符将字符串拆分为数组 str = str.Re ...
- Visual Studio 2019 发布活动 - 2019 年 4 月 2 日
Visual Studio 2019 发布活动 2019 年 4 月 2 日,星期二 | 上午 9:00 (PT) 围观: https://visualstudio.microsoft.com/zh- ...
- Shiro详解
Shiro Shiro集成Spring 加入Spring和Shiro的jar包 配置Spring及SpringMVC 参照:官方给出的案例shiro\samples\spring Shiro集成Web ...
- 网页设计(CSS&JS)
实验一 简单静态网页设计 一. 实验目的: 复习使用记事本编辑网页的方法. 熟悉不同表单控件类型的应用. 练习使用记事本在网页中添加表单与表单元素. 二. 实验内容: 根据提供的素材设计在线调查问卷 ...
- 一条SQL生成数据字典
有个字典表并定期维护,对DBA和开发很重要,终于把他们整合在一起了,看有没问题? 一条SQL生成数据字典,包含所有OPEN用户.表名.字段名.字段序号.字段属性.默认值.是否非空.字段意思.主键标识. ...
- win10彻底禁用自动更新,win10怎样彻底关闭自动更新,永久关闭win10自动更新,win10更新助手
首先,请广大win10受害者原谅小菜用一个如此长的标题来吸引你们,为了尽最大努力帮助那些饱受win10自动更新折磨的朋友们,小菜不得已出此下策,望见谅! windows 10是一个神奇的操作系统,当你 ...
- eclipse代码提示设置过常用字符还是不起作用的解决方法
问题:重装eclipse之后发现没有了代码提示,一般情况下在设置中添加自动提示的字符之后就可以了,设置如下 如上图,初始的时候是只有一个点号,并没有字符,输入26个字母的大小写后点击Apply and ...
- 使用 connect http proxy 绕过 ssh 防火墙限制
1.安装 connect brew install connect 2.配置 ~/.ssh/config Host * ProxyCommand connect -H your.proxy.serve ...
- ReactNative之结合具体示例来看RN中的的Timing动画
今天继续更新RN相关的博客.上篇博客详细的聊了RN中关于Flex布局的相关东西,具体请参见<ReactNative之参照具体示例来看RN中的FlexBox布局>.本篇博客继续更新RN的动画 ...