Start on adding usage charts

This commit is contained in:
Joseph Schorr 2015-01-28 12:35:01 -05:00
parent a7ab14479e
commit 63cd6ffcc3
9 changed files with 192 additions and 0 deletions

View file

@ -4,13 +4,46 @@ import json
from flask import request, Blueprint, abort, Response
from flask.ext.login import current_user
from auth.auth import require_session_login
from endpoints.common import route_show_if
from app import userevents
from auth.permissions import SuperUserPermission
import features
import psutil
import time
logger = logging.getLogger(__name__)
realtime = Blueprint('realtime', __name__)
@realtime.route("/ps")
@route_show_if(features.SUPER_USERS)
@require_session_login
def ps():
if not SuperUserPermission().can():
abort(403)
def generator():
while True:
data = {
'count': {
'cpu': psutil.cpu_percent(interval=1, percpu=True),
'virtual_mem': psutil.virtual_memory(),
'swap_mem': psutil.swap_memory(),
'connections': len(psutil.net_connections()),
'processes': len(psutil.pids()),
'network': psutil.net_io_counters()
}
}
json_string = json.dumps(data)
yield 'data: %s\n\n' % json_string
time.sleep(0.25)
return Response(generator(), mimetype="text/event-stream")
@realtime.route("/user/")
@require_session_login
def index():