2024-12-18 10:04:22 +08:00
|
|
|
|
# Computer_status
|
|
|
|
|
|
2024-12-18 10:04:47 +08:00
|
|
|
|
# 服务器监控面板
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 数据库
|
|
|
|
|
|
|
|
|
|
使用数据库存储历史30天的数据,每隔一秒储存一次
|
|
|
|
|
|
|
|
|
|
数据库存储:对象数据库
|
|
|
|
|
|
|
|
|
|
采用本地db文件,相对路径
|
|
|
|
|
|
|
|
|
|
数据对象:Computer_status
|
|
|
|
|
|
|
|
|
|
## 数据操作文件
|
|
|
|
|
|
|
|
|
|
文件名称Computer_status
|
|
|
|
|
|
|
|
|
|
### 数据对象
|
|
|
|
|
|
|
|
|
|
类名 Computer_status
|
|
|
|
|
|
|
|
|
|
time:时间戳,单位s
|
|
|
|
|
|
|
|
|
|
ram_all:所有内存
|
|
|
|
|
|
|
|
|
|
ram_use:已占用内存
|
|
|
|
|
|
|
|
|
|
cpu_use:cpu占用,比如50% 记作50
|
|
|
|
|
|
|
|
|
|
cpu_c:cpu温度
|
|
|
|
|
|
|
|
|
|
disk:记录磁盘,例如{'磁盘1':[容量,已用容量,io读,io写],'磁盘2':[容量,已用容量,io读,io写]} (单位kb)
|
|
|
|
|
|
|
|
|
|
web:记录网络流量,例如{‘网口1’:[上传,下载],'网口2':[上传,下载]} (单位kbps)
|
|
|
|
|
|
|
|
|
|
gpu:记录显卡信息,字典{'显卡名称':显卡信息,'显卡名称':显卡信息}
|
|
|
|
|
|
|
|
|
|
显卡信息(字典){
|
|
|
|
|
|
|
|
|
|
gpu_ram_all:gpu显存容量GB
|
|
|
|
|
|
|
|
|
|
gpu_ram_use:gpu显存使用GB
|
|
|
|
|
|
|
|
|
|
gpu_use:gpu占用,比如50% 记作50
|
|
|
|
|
|
|
|
|
|
gpu_fan:风扇占用,比如50% 记作50
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
构造函数:
|
|
|
|
|
|
|
|
|
|
Computer_status(time,ram_all,ram_use,cpu_use,cpu_c,disk,web,gpu)
|
|
|
|
|
|
|
|
|
|
### 数据读取方法
|
|
|
|
|
|
|
|
|
|
获取最新30s信息
|
|
|
|
|
|
|
|
|
|
方法名称:get_data_30s
|
|
|
|
|
|
|
|
|
|
参数:无
|
|
|
|
|
|
|
|
|
|
返回Computer_status集合
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
获取指定时间戳到指定时间戳信息
|
|
|
|
|
|
|
|
|
|
方法名称:get_data
|
|
|
|
|
|
|
|
|
|
参数:{
|
|
|
|
|
|
|
|
|
|
time_start
|
|
|
|
|
|
|
|
|
|
类型 int
|
|
|
|
|
|
|
|
|
|
备注:开始时间
|
|
|
|
|
|
|
|
|
|
time_end
|
|
|
|
|
|
|
|
|
|
类型 int
|
|
|
|
|
|
|
|
|
|
备注:结束时间
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
返回:Computer_status集合
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
获取最新30s信息
|
|
|
|
|
|
|
|
|
|
方法名称:get_data_json_30s
|
|
|
|
|
|
|
|
|
|
参数:无
|
|
|
|
|
|
|
|
|
|
将Computer_status集合根据时间排序,升序,转为json
|
|
|
|
|
|
|
|
|
|
返回json
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
获取指定时间戳到指定时间戳信息
|
|
|
|
|
|
|
|
|
|
方法名称:get_data_json
|
|
|
|
|
|
|
|
|
|
参数:{
|
|
|
|
|
|
|
|
|
|
time_start
|
|
|
|
|
|
|
|
|
|
类型 int
|
|
|
|
|
|
|
|
|
|
备注:开始时间
|
|
|
|
|
|
|
|
|
|
time_end
|
|
|
|
|
|
|
|
|
|
类型 int
|
|
|
|
|
|
|
|
|
|
备注:结束时间
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
将Computer_status集合根据时间排序,升序,转为json
|
|
|
|
|
|
|
|
|
|
返回json
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### 数据写入方法
|
|
|
|
|
|
|
|
|
|
写入一条数据
|
|
|
|
|
|
|
|
|
|
方法名称:write_data
|
|
|
|
|
|
|
|
|
|
参数:{
|
|
|
|
|
|
|
|
|
|
名称computer_status
|
|
|
|
|
|
|
|
|
|
类型Computer_status
|
|
|
|
|
|
|
|
|
|
备注:数据对象
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
## 数据存储部分
|
|
|
|
|
|
|
|
|
|
每隔一秒,读取电脑状态,打包成Computer_status对象,调用Computer_status.write_data
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## web端部分
|
|
|
|
|
|
|
|
|
|
展示Computer_status对象中的状态,以时间为轴,绘制折线图
|
|
|
|
|
|
|
|
|
|
可以选择实时展示,每隔1s发送请求,服务器调用Computer_status.get_data_json_30s,返回json
|
|
|
|
|
|
|
|
|
|
可以选择查看指定时间端的历史信息,发送请求,包含开始时间和结束时间,服务器调用Computer_status.get_data_json,返回json
|
|
|
|
|
|
|
|
|
|
### **Web 前端**
|
|
|
|
|
|
|
|
|
|
### **Python 服务器后端**
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|