PyQt5+matplotlib-Linux设备性能监控工具

2022-07-21 14:44:16 浏览数 (1)

无奈接受任务

进入新公司差不多到半个月多了,刚好碰到稳定性相关测试-需要24H监控设备的CPU和内存使用率,来确认CPU使用是否过高(不超过80%),是否有内存泄漏的情况发生(稳定)。之前测试的人好像直接用Linux-top命令,然后筛选出现相关信息写到文件,在自己检查整个趋势?带我的老哥来一句:你是会Python是吧?要不你看看能不能写个工具?那我只能说好吧!我是个新人,不敢说话呀!然后开始了4个晚上加班才完成这个工具。

开始doing

整体思路

涉及到相关的库安装:

Pyqt5:pip install PyQt5-写界面要用到

Pyqt5-tools:pip install Pyqt5-tools -QtDesigner界面设计要用到

paramiko:pip install paramiko-连接Linux获取数据要用到

matplotlib:pip install matplotlib-数据处理画图需要用到

那就实现啦-关键的那几部分(具体的就不写啦)

第一步:连接Linux且执行Linux命令

代码语言:javascript复制
import paramiko
#连接Linux
def get_ssh_client(hostName,port,userName,password):
    try:
        client = paramiko.SSHClient() #得到SSH2客户dUAN
        client.set_missing_host_key_policy(paramiko.AutoAddPolicy())#设置不需要密钥
        client.connect(hostName, port, userName, password)#连接Linux
    except:
        print("获取*****连接失败")
        #exit()
    else:
        print("获取*****连接成功")
        return client
   #执行Linux相关命令
def sshExcommand(client,command):
    stdin, stdout, stderr = client.exec_command(command) #执行Linux
    lines=stdout.readlines()#读取输出
    return lines

第二步:QtDesigner设计界面,设计的很丑

然后用Pyuic命令生成py文件:

pyuic5 -o xxx.py monitor.ui,xxx随便取个名字

第三步:matplotlib显示数据,并且要把画布放入以上的红色框框的地方,且画图呢?这部分代码写吗?还是不写了吧?(最后给出所有代码的github地址吧)感觉写得有点乱,大概说下用到的几个类和作用:

还有说一个定时器去采集数据的吧。我用的是PyQt5里面的定时QTimer,在PyQt5.QtCore里面。用法也是很简单。

代码语言:javascript复制
timer = QTimer() #得到定时器实例
timer.timeout.connect(self.append_data)#定时器需要执行的函数,其中append_data是我自己写的数据处理函数
timer.start(5000)#启动定时器,参数是单位是ms,5000表示5s执行1次append_data函数

最后一步就是写好逻辑,然后就是效果啦:

这个是之前的效果图,后来加了说明在绘图中加了说明哪个线表示什么指标。

感受

1、发觉自己的英文阅读能力真的很差(网上的API帮助文档都是英文)

2、找资料太杂,导致实现功能时很容易受影响

3、看对应类的源码,找API挺方便的

还好公司可以上外网,可以随便查找资料,这点很喜欢呢。

PS工具源码github地址:

https://github.com/graceMik/monitor.git

0 人点赞