使用Python和Grafana监测iOS设备性能

众所周知,iOS设备上App的调试是非常困难的,需要用到Xcode中的Instruments工具,对于普通用户来说还是太复杂了。幸运的是,感谢开源社区的大神们对Instruments协议进行了实现,现在我们在Mac / Windows平台上都可以用简单的步骤实现iOS / iPadOS设备性能监测。

操作步骤

准备工作

需要准备的设备:

  • 一台iPhone或者iPad
  • 一根Lightning数据线
  • 一台Mac或者Windows电脑

下载并解压项目文件

https://github.com/yanbo92/iOS-perf/archive/refs/heads/master.zip

将其下载后解压,后续命令均在此目录下进行。

安装MySQL Server和Grafana

MySQL Server用于储存记录的数据供Grafana读取,推荐使用5.7版本(其他版本应该也可行,未测试);Grafana用于数据的可视化,下面给出通过Docker安装的方式,也可以自行搜索对应系统的手动安装方式。

Docker安装方式

进入目录,确认docker-compose文件存在后,执行docker-compose up -d启动服务即可。

安装依赖

确认电脑安装了Python3,在目录下执行pip install -r requirements.txt -i http://mirrors.aliyun.com/pypi/simple/安装相关依赖。

连接并启动脚本

首先确认电脑上有设备相关驱动(Windows需下载iTunes),然后将设备通过Lightning线连接电脑并信任,进入目录后执行如下脚本。

  • 通过tidevice list命令获取设备的UDID并记下(或者使用iTunes/iMazing等工具也可查询)
python3 run.py --udid=00000000-00FFFFFFFFFFFFFF \
--bundleid=com.tencent.xin \
--grafana_host=localhost \
--grafana_port=30000 \
--grafana_user=admin \
--grafana_password=admin \
--mysql_host=localhost \
--mysql_port=33306 \
--mysql_username=root \
--mysql_password=admin \
--mysql_db=iOSPerformance

注意:在Windows下,换行符为^ 而不是\

其中00000000-00FFFFFFFFFFFFFF需要替换为之前记下的UDID,bundleid是需要记录性能的软件,具体可以在这个网站查询到(com.tencent.xin是微信),grafana_host是你安装Grafana的机器,grafana_port是Grafana的端口,如果通过docker-compose一键安装的端口是30000,其他情况默认是3000,grafana_usergrafana_password如果没有修改过默认都是admin无需修改,mysql_的数据按照具体情况填写即可,docker-compose一键安装则无需修改。

如果成功执行,浏览器会自动打开Grafana的页面,输入用户名和密码登录后即可看到图表。

注意事项

  • 如果遇到MySQL无法连接的问题,可能是没有开放root用户的远程权限,可以进入MySQL命令行执行以下命令授予权限,但是要注意安全问题。

    mysql>   GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
    mysql>   UPDATE mysql.user SET host='%' WHERE user='root';
  • 在Grafana 8.x版本运行时,出现了无法自动添加数据源的情况,表现为图表为空,没有数据。解决方法:选择左侧Configuration > Data sources手动添加MySQL数据库。

暂无评论

发送评论 编辑评论


				
上一篇
下一篇