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

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

 

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
目录
相关文章
|
2月前
|
人工智能 搜索推荐 物联网
Android系统版本演进与未来展望####
本文深入探讨了Android操作系统从诞生至今的发展历程,详细阐述了其关键版本迭代带来的创新特性、用户体验提升及对全球移动生态系统的影响。通过对Android历史版本的回顾与分析,本文旨在揭示其成功背后的驱动力,并展望未来Android可能的发展趋势与面临的挑战,为读者呈现一个既全面又具深度的技术视角。 ####
|
2月前
|
IDE Java 开发工具
移动应用与系统:探索Android开发之旅
在这篇文章中,我们将深入探讨Android开发的各个方面,从基础知识到高级技术。我们将通过代码示例和案例分析,帮助读者更好地理解和掌握Android开发。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和技巧。让我们一起开启Android开发的旅程吧!
|
1月前
|
监控 Java Android开发
深入探索Android系统的内存管理机制
本文旨在全面解析Android系统的内存管理机制,包括其工作原理、常见问题及其解决方案。通过对Android内存模型的深入分析,本文将帮助开发者更好地理解内存分配、回收以及优化策略,从而提高应用性能和用户体验。
|
1月前
|
存储 安全 Android开发
探索Android系统的最新安全特性
在数字时代,智能手机已成为我们生活中不可或缺的一部分。随着技术的不断进步,手机操作系统的安全性也越来越受到重视。本文将深入探讨Android系统最新的安全特性,包括其设计理念、实施方式以及对用户的影响。通过分析这些安全措施如何保护用户免受恶意软件和网络攻击的威胁,我们希望为读者提供对Android安全性的全面了解。
|
1月前
|
敏捷开发 测试技术 持续交付
自动化测试之美:从零开始搭建你的Python测试框架
在软件开发的马拉松赛道上,自动化测试是那个能让你保持节奏、避免跌宕起伏的神奇小助手。本文将带你走进自动化测试的世界,用Python这把钥匙,解锁高效、可靠的测试框架之门。你将学会如何步步为营,构建属于自己的测试庇护所,让代码质量成为晨跑时清新的空气,而不是雾霾中的忧虑。让我们一起摆脱手动测试的繁琐枷锁,拥抱自动化带来的自由吧!
|
2月前
|
监控 Java Android开发
深入探讨Android系统的内存管理机制
本文将深入分析Android系统的内存管理机制,包括其内存分配、回收策略以及常见的内存泄漏问题。通过对这些方面的详细讨论,读者可以更好地理解Android系统如何高效地管理内存资源,从而提高应用程序的性能和稳定性。
98 16
|
2月前
|
安全 Android开发 iOS开发
深入探讨Android与iOS系统的差异及未来发展趋势
本文旨在深入分析Android和iOS两大移动操作系统的核心技术差异、用户体验以及各自的市场表现,进一步探讨它们在未来技术革新中可能的发展方向。通过对比两者的开放性、安全性、生态系统等方面,本文揭示了两大系统在移动设备市场中的竞争态势和潜在变革。
|
2月前
|
算法 JavaScript Android开发
|
2月前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
2月前
|
安全 搜索推荐 程序员
深入探索Android系统的碎片化问题及其解决方案
在移动操作系统的世界中,Android以其开放性和灵活性赢得了广泛的市场份额。然而,这种开放性也带来了一个众所周知的问题——系统碎片化。本文旨在探讨Android系统碎片化的现状、成因以及可能的解决方案,为开发者和用户提供一种全新的视角来理解这一现象。通过分析不同版本的Android系统分布、硬件多样性以及更新机制的影响,我们提出了一系列针对性的策略,旨在减少碎片化带来的影响,提升用户体验。

热门文章

最新文章