Commit 797d6c3a authored by ibuler's avatar ibuler

[Update] 修改一些小问题

parent 97865db8
......@@ -14,7 +14,10 @@ from .conf import config
from .sshd import SSHServer
from .httpd import HttpServer
from .tasks import TaskHandler
from .utils import get_logger, ugettext as _, ignore_error
from .utils import (
get_logger, ugettext as _, ignore_error, get_monitor_data,
get_coco_monitor_data
)
from .service import app_service
from .recorder import get_replay_recorder
from .session import Session
......@@ -89,20 +92,8 @@ class Coco:
# @ignore_error
def heartbeat(self):
sessions = list(Session.sessions.keys())
# p = psutil.Process(os.getpid())
# cpu_used = p.cpu_percent(interval=1.0)
# memory_used = int(p.memory_info().rss / 1024 / 1024)
# connections = len(p.connections())
# threads = p.num_threads()
# session_online = len(sessions)
data = {
# "cpu_used": cpu_used,
# "memory_used": memory_used,
# "connections": connections,
# "threads": threads,
# "boot_time": p.create_time(),
# "session_online": session_online,
"sessions": sessions,
'sessions': sessions,
}
tasks = app_service.terminal_heartbeat(data)
......
......@@ -341,7 +341,7 @@ defaults = {
'TELNET_REGEX': '',
'PASSWORD_AUTH': True,
'PUBLIC_KEY_AUTH': True,
'SSH_TIMEOUT': 10,
'SSH_TIMEOUT': 15,
'ALLOW_SSH_USER': [],
'BLOCK_SSH_USER': [],
'HEARTBEAT_INTERVAL': 20,
......
......@@ -4,11 +4,13 @@
from __future__ import unicode_literals
import time
import logging
import re
import os
import gettext
import gzip
import psutil
from io import StringIO
from binascii import hexlify
from werkzeug.local import Local, LocalProxy
......@@ -472,4 +474,66 @@ def gzip_file(src_path, dst_path, unlink_ori=True):
os.unlink(src_path)
def get_cpu_info():
cpus = ['cpu%s' % i for i in range(psutil.cpu_count())]
percents = psutil.cpu_percent(interval=0.5, percpu=True)
return dict(zip(cpus, percents))
def get_memory_info():
mem = psutil.virtual_memory()
return {
'total': mem.total,
'avail': mem.available,
'used': mem.used,
'percent': mem.percent,
}
def get_disk_info():
partitions = psutil.disk_partitions()
info = {}
for partition in partitions:
usage = psutil.disk_usage(partition.mountpoint)
info[partition.device] = {
'mountpoint': partition.mountpoint,
'device': partition.device,
'total': usage.total,
'used': usage.used,
'free': usage.free,
'percent': usage.percent
}
return info
def get_net_info():
counter = psutil.net_io_counters()
return {
'bytes_sent': counter.bytes_sent,
'bytes_recv': counter.bytes_recv,
}
def get_coco_monitor_data():
p = psutil.Process(os.getpid())
cpu_used = p.cpu_percent(interval=0.5)
memory_used = p.memory_info().rss
connections = len(p.connections())
return {
'p_cpu': cpu_used,
'p_memory': memory_used,
'p_conns': connections
}
def get_monitor_data():
return {
'timestamp': int(time.time()),
'cpu': get_cpu_info(),
'memory': get_memory_info(),
'disk': get_disk_info(),
'net': get_net_info(),
}
ugettext = LocalProxy(partial(_find, 'LANGUAGE_CODE'))
......@@ -22,7 +22,7 @@ BASE_DIR = os.path.abspath(os.path.dirname(__file__))
sys.path.insert(0, BASE_DIR)
dirs = ('logs', 'keys')
dirs = ('logs',)
for d in dirs:
d2 = os.path.join('data', d)
if not os.path.isdir(d2):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment