update to 6.8.27

This commit is contained in:
aaPanel
2022-12-16 10:40:55 +08:00
parent d2a66661db
commit 7dcaa2b5ce
148 changed files with 22281 additions and 13876 deletions
+130 -6
View File
@@ -12,6 +12,7 @@ import json
import time
import datetime
import re
import sqlite3
import public
@@ -40,6 +41,43 @@ class Monitor:
return sites
def _statuscode_distribute_site(self, site_name):
try:
day_401 = 0
day_500 = 0
day_502 = 0
day_503 = 0
conn = None
ts = None
start_date, end_date = self.get_time_interval(time.localtime())
select_sql = "select time/100 as time1, sum(status_401), sum(status_500), sum(status_502), sum(status_503) from request_stat where time between {} and {}"\
.format(start_date, end_date)
db_path = os.path.join("/www/server/total/", "logs/{}/logs.db".format(site_name))
if os.path.isfile(db_path):
conn = sqlite3.connect(db_path)
ts = conn.cursor()
ts.execute(select_sql)
results = ts.fetchall()
if type(results) == list:
for result in results:
time_key = str(result[0])
day_401 = result[1]
day_500 = result[2]
day_502 = result[3]
day_503 = result[4]
except:
pass
finally:
if ts:
ts.close()
if conn:
conn.close()
return day_401, day_500, day_502, day_503
def _statuscode_distribute_site_old(self, site_name):
today = time.strftime('%Y-%m-%d', time.localtime())
path = '/www/server/total/total/' + site_name + '/request/' + today + '.json'
@@ -52,10 +90,10 @@ class Monitor:
for c in spdata.values():
for d in c:
if '401' == d: day_401 += c['401']
if '500' == d: day_500 += c['500']
if '502' == d: day_502 += c['502']
if '503' == d: day_503 += c['503']
if '401' == d: day_401 += c['401'] or 0
if '500' == d: day_500 += c['500'] or 0
if '502' == d: day_502 += c['502'] or 0
if '503' == d: day_503 += c['503'] or 0
return day_401, day_500, day_502, day_503
@@ -66,6 +104,10 @@ class Monitor:
for site in sites:
site_name = site['name']
day_401, day_500, day_502, day_503 = self._statuscode_distribute_site(site_name)
day_401 = day_401 or 0
day_500 = day_500 or 0
day_502 = day_502 or 0
day_503 = day_503 or 0
count_401 += day_401
count_500 += day_500
count_502 += day_502
@@ -177,8 +219,45 @@ class Monitor:
data.update(statuscode_distribute)
return data
# 获取蜘蛛数量分布
def get_spider(self, args):
request_data = {}
sites = public.M('sites').field('name').order("addtime").select();
for site_info in sites:
ts = None
conn = None
try:
site_name = site_info["name"]
start_date, end_date = self.get_time_interval(time.localtime())
select_sql = "select time, spider from request_stat where time between {} and {}"\
.format(start_date, end_date)
db_path = os.path.join("/www/server/total/", "logs/{}/logs.db".format(site_name))
if not os.path.isfile(db_path): continue
conn = sqlite3.connect(db_path)
ts = conn.cursor()
ts.execute(select_sql)
results = ts.fetchall()
if type(results) == list:
for result in results:
time_key = str(result[0])
hour = time_key[len(time_key)-2:]
value = result[1]
if hour not in request_data:
request_data[hour] = value
else:
request_data[hour] += value
except:
pass
finally:
if ts:
ts.close()
if conn:
conn.close()
return request_data
# 获取蜘蛛数量分布
def get_spider_old(self, args):
today = time.strftime('%Y-%m-%d', time.localtime())
sites = self._get_site_list()
@@ -210,8 +289,53 @@ class Monitor:
return {'load_five': load_five, 'cpu_count': cpu_count, 'up_flow': up_flow}
# 取每小时的请求数
def get_time_interval(self, local_time):
start = None
end = None
time_key_format = "%Y%m%d00"
start = int(time.strftime(time_key_format, local_time))
time_key_format = "%Y%m%d23"
end = int(time.strftime(time_key_format, local_time))
return start, end
def get_request_count_by_hour(self, args):
# 获取站点每小时的请求数据
request_data = {}
import sqlite3
sites = public.M('sites').field('name').order("addtime").select();
for site_info in sites:
ts = None
conn = None
try:
site_name = site_info["name"]
start_date, end_date = self.get_time_interval(time.localtime())
select_sql = "select time, req from request_stat where time between {} and {}"\
.format(start_date, end_date)
db_path = os.path.join("/www/server/total/", "logs/{}/logs.db".format(site_name))
if not os.path.isfile(db_path): continue
conn = sqlite3.connect(db_path)
ts = conn.cursor()
ts.execute(select_sql)
results = ts.fetchall()
if type(results) == list:
for result in results:
time_key = str(result[0])
hour = time_key[len(time_key)-2:]
value = result[1]
if hour not in request_data:
request_data[hour] = value
else:
request_data[hour] += value
except: pass
finally:
if ts:
ts.close()
if conn:
conn.close()
return request_data
# 取每小时的请求数
def get_request_count_by_hour_old(self, args):
today = time.strftime('%Y-%m-%d', time.localtime())
request_data = {}