mirror of
https://github.com/aaPanel/aaPanel.git
synced 2026-09-23 09:54:53 +02:00
Update to 7.7.0
Since version 7.7.0, we recommend yours update python to 3.12. [+] Using nginx technology to load static files improves access speed [+] Refactor homepage, website, FTP, and database using vue3 [+] Table loading changed to skeleton screen [+] Add Website statistics-v2 professional plug-in [+] Add Home page - top 5 resource occupancy [+] Add protection for Files management (requires Tamper-proof for Enterprise 3.7) [+] Website, FTP, Databases page add program status [+] Add FTP log analysis (only supports Centos) [+] Add password-free login to phpMyAdmin [+] Add Proxy Project in Website (Supported when web service uses Nginx) [+] Add WP Toolkit (Pro version only) [+] Redesigned Docker module [+] Add WP Toolkit Protection [+] Add WP Toolkit Backup and Restore [+] Add WP Toolkit Migrated [+] Add WP Toolkit Clone site (supports new domain and subdomain) [+] Add WP Toolkit Create site from backup of other panel [+] Add WP Toolkit support for Cron automatic backup (only save Local disk) [+] Add WP Toolkit operation log [+] Add Integrity check for WP Toolkit [+] Add WP Toolkit plug-in management and themes management [*] Optimize phpMyAdmin formula access method [*] Optimize Home page PHP display problem [*] Optimize jump to the login interface after the login expires [*] Optimize automatic renewal of SSL at some times [*] Optimize Let's Encrypt to increase application success rate [-] Fix Logs Audit cannot be opened [-] Fix apache URL rewrite issue [-] Fix phpmyadmin installation problem [-] Fix the problem that some servers cannot install software [-] Fix upload file error [-] Fix left menu hiding problem [-] Fix aaPanel Mobile QR code display problem [-] Fix problem that third-party plug-ins are not displayed in the App Store [-] Fix issue where the menu bar is blank when opening new tabs [-] Fixed panel not being accessible in some cases [-] Fix the issue where Curl warning caused the inability to apply for SSL [-] Fix Quota issues for Website, FTP, Databases [-] Fix file interface display problem on mobile terminal
This commit is contained in:
@@ -0,0 +1,84 @@
|
||||
#coding: utf-8
|
||||
#-------------------------------------------------------------------
|
||||
# aaPanel
|
||||
#-------------------------------------------------------------------
|
||||
# Copyright (c) 2015-2099 aaPanel(www.aapanel.com) All rights reserved.
|
||||
#-------------------------------------------------------------------
|
||||
# Author: zouhw <zhw@aapanel.com>
|
||||
#-------------------------------------------------------------------
|
||||
|
||||
#------------------------------
|
||||
# Docker模型
|
||||
#------------------------------
|
||||
import dk_public as dp
|
||||
import time
|
||||
|
||||
class main:
|
||||
|
||||
def get_status(self,args):
|
||||
"""
|
||||
start_time
|
||||
stop_time
|
||||
:param args:
|
||||
:return:
|
||||
"""
|
||||
data = dict()
|
||||
# 容器总数
|
||||
data['container_count'] = self.__get_container_count(args)
|
||||
# 镜像信息,镜像总数,占用空间大小
|
||||
data['image_info'] = dp.sql("image_infos").where("time>=? and time<=?",(args.start_time,args.stop_time)).select()
|
||||
# 主机信息
|
||||
data['host'] = len(dp.sql('hosts').select())
|
||||
# 1小时内容器占用资源前三平均值
|
||||
data['container_top'] = {"cpu":self.__get_cpu_avg(),"mem":self.__get_mem_avg()}
|
||||
return data
|
||||
|
||||
def __get_container_count(self,args):
|
||||
count = dp.sql('container_count').where("time>=? and time<=?", (args.start_time, args.stop_time)).select()
|
||||
if not count:
|
||||
return 0
|
||||
return count[-1]
|
||||
|
||||
def __get_mem_avg(self):
|
||||
now = int(time.time())
|
||||
start_time = now - 3600
|
||||
data = dp.sql("mem_stats").where("time>=? and time<=?",(start_time,now)).select()
|
||||
containers = list()
|
||||
info = dict()
|
||||
# 获取容器ID
|
||||
for d in data:
|
||||
containers.append(d['container_id'])
|
||||
# 获取每个容器1小时内的cpu使用率总和
|
||||
containers = set(containers)
|
||||
for c in containers:
|
||||
num = 0
|
||||
usage = 0
|
||||
for d in data:
|
||||
if d['container_id'] == c:
|
||||
num += 1
|
||||
usage += float(d['usage'])
|
||||
if num != 0:
|
||||
info[c] = usage / num
|
||||
return info
|
||||
|
||||
def __get_cpu_avg(self):
|
||||
now = int(time.time())
|
||||
start_time = now - 3600
|
||||
data = dp.sql("cpu_stats").where("time>=? and time<=?",(start_time,now)).select()
|
||||
containers = list()
|
||||
info = dict()
|
||||
# 获取容器ID
|
||||
for d in data:
|
||||
containers.append(d['container_id'])
|
||||
# 获取每个容器1小时内的cpu使用率总和
|
||||
containers = set(containers)
|
||||
for c in containers:
|
||||
num = 0
|
||||
cpu_usage = 0
|
||||
for d in data:
|
||||
if d['container_id'] == c:
|
||||
num += 1
|
||||
cpu_usage += float(0 if d['cpu_usage'] == '0.0' else d['cpu_usage'])
|
||||
if num != 0:
|
||||
info[c] = cpu_usage / num
|
||||
return info
|
||||
Reference in New Issue
Block a user