zoukankan      html  css  js  c++  java
  • 性能测试 基于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主机配置

    AndroidMonitorconfinfluxDB.conf

    [INFLUXDB]

    influxdb_host = 10.203.25.106

    influxdb_port = 8086

     

    monitor_scope.conf监控范围配置

    AndroidMonitorconfmonitor_scope.conf

     

    [DEVICE]

    choice = 0

     

    [PACKAGE]

    choice = 1

     

    配置说明:

    choice = 1 监控所有设备(应用包) 0 监控device_and_package.conf配置的设备及对应应用包,目前 PACKAGE节点下的choice配置不起作用,即只监控配置的应用包

     

    device_with_package.conf设备和应用包配置

    AndroidMonitorconfdevice_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 配置

    AndroidMonitorconfsample_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

     

  • 相关阅读:
    listView控件演示程序
    猪悟能淘宝商品下载专家v3版开发手记
    c# WebClient类
    分隔控件splitter演示程序
    C#中SESSIONID的获取
    工具栏toolBar演示程序
    Cookie总结
    C#获取网页源码并且自动判断网页字符集编码
    如何在Google Code上建立私有代码版本库
    iOS应用程序生命周期(前后台切换,应用的各种状态)详解
  • 原文地址:https://www.cnblogs.com/shouke/p/10498641.html
Copyright © 2011-2022 走看看