diff --git a/app/options.py b/app/options.py index 397a9550..38b40962 100644 --- a/app/options.py +++ b/app/options.py @@ -354,6 +354,19 @@ if form.getvalue('masteradd'): if form.getvalue('haproxyaddserv'): funct.install_haproxy(form.getvalue('haproxyaddserv'), syn_flood=form.getvalue('syn_flood')) +if form.getvalue('table_metrics'): + import http.cookies + from jinja2 import Environment, FileSystemLoader + env = Environment(loader=FileSystemLoader('templates/ajax')) + template = env.get_template('table_metrics.html') + + cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE")) + user_id = cookie.get('uuid') + table_stat = sql.select_table_metrics(user_id.value) + + template = template.render(table_stat = sql.select_table_metrics(user_id.value)) + print(template) + if form.getvalue('metrics'): from datetime import timedelta from bokeh.plotting import figure, output_file, show @@ -362,15 +375,13 @@ if form.getvalue('metrics'): from bokeh.models.widgets import Button, RadioButtonGroup, Select import pandas as pd import http.cookies - + cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE")) user_id = cookie.get('uuid') servers = sql.select_servers_metrics(user_id.value) - + p = {} - k = 0 for serv in servers: - k += 1 serv = serv[0] p[serv] = {} metric = sql.select_metrics(serv) @@ -414,25 +425,21 @@ if form.getvalue('metrics'): ) p[serv].ygrid.band_fill_color = "#f3f8fb" - #p[serv].ygrid.band_fill_alpha = 0.1 + p[serv].ygrid.band_fill_alpha = 0.9 p[serv].y_range.start = 0 p[serv].y_range.end = int(df['curr_con'].max()) + 150 p[serv].add_tools(hover) p[serv].title.text_font_size = "20px" - if k == 1: - p[serv].line("Date", "curr_con", source=source, alpha=0.5, color='#5cb85c', line_width=2, legend="Conn") - p[serv].line("Date", "curr_ssl_con", source=source, alpha=0.5, color="#5d9ceb", line_width=2, legend="SSL con") - p[serv].line("Date", "sess_rate", source=source, alpha=0.5, color="#33414e", line_width=2, legend="Sessions") - #p[serv].line("Date", "max_sess_rate", source=source, alpha=0.5, color="red", line_width=2, legend="Max sess") - p[serv].legend.orientation = "horizontal" - p[serv].legend.location = "top_left" - p[serv].legend.padding = 5 - else: - p[serv].line("Date", "curr_con", source=source, alpha=0.5, color='#5cb85c', line_width=2) - p[serv].line("Date", "curr_ssl_con", source=source, alpha=0.5, color="#5d9ceb", line_width=2) - p[serv].line("Date", "sess_rate", source=source, alpha=0.5, color="#33414e", line_width=2) - #p[serv].line("Date", "max_sess_rate", source=source, alpha=0.5, color="red", line_width=2) + + p[serv].line("Date", "curr_con", source=source, alpha=0.5, color='#5cb85c', line_width=2, legend="Conn") + p[serv].line("Date", "curr_ssl_con", source=source, alpha=0.5, color="#5d9ceb", line_width=2, legend="SSL con") + p[serv].line("Date", "sess_rate", source=source, alpha=0.5, color="#33414e", line_width=2, legend="Sessions") + #p[serv].line("Date", "max_sess_rate", source=source, alpha=0.5, color="red", line_width=2, legend="Max sess") + p[serv].legend.orientation = "horizontal" + p[serv].legend.location = "top_left" + p[serv].legend.padding = 5 + #select = Select(title="Option:", value="foo", options=["foo", "bar", "baz", "quux"]) #show(widgetbox(select, width=300)) diff --git a/app/sql.py b/app/sql.py index d558a285..2eace086 100644 --- a/app/sql.py +++ b/app/sql.py @@ -709,6 +709,7 @@ def select_servers_metrics(uuid, **kwargs): def select_table_metrics(uuid): con, cur = create_db.get_cur() + groups = "" sql = """ select * from user where username = '%s' """ % get_user_name_by_uuid(uuid) try: @@ -721,6 +722,7 @@ def select_table_metrics(uuid): groups = "" else: groups = "and servers.groups like '%{group}%' ".format(group=group[5]) + sql = """ select ip.ip, hostname, avg_sess_1h, avg_sess_24h, avg_sess_3d, max_sess_1h, max_sess_24h, max_sess_3d, avg_cur_1h, avg_cur_24h, avg_cur_3d, max_con_1h, max_con_24h, max_con_3d from (select servers.ip from servers where metrics = 1 ) as ip, @@ -813,12 +815,14 @@ def select_table_metrics(uuid): and ip.ip=max_con_24h.ip and ip.ip=max_con_3d.ip - group by ip.ip""" % groups + group by hostname.ip """ % groups + try: cur.execute(sql) except sqltool.Error as e: - print('An error occurred: ' + e + ' X') + print('An error occurred: ' + e.args[0] + ' X') else: + return cur.fetchall() cur.close() con.close() diff --git a/app/templates/metrics.html b/app/templates/metrics.html index 8bddec63..71e53548 100644 --- a/app/templates/metrics.html +++ b/app/templates/metrics.html @@ -16,51 +16,9 @@ th, tr, td { } -
Metrics | -||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Server | -Average sessions | -Peak sessions | -Average connections | -Peak connections | -||||||||
60 minutes | -24 hours | -3 days | -60 minutes | -24 hours | -3 days | -60 minutes | -24 hours | -3 days | -60 minutes | -24 hours | -3 days | -|
{{ val.1 }} | -{{ val.2 }} | -{{ val.3 }} | -{{ val.4 }} | -{{ val.5 }} | -{{ val.6 }} | -{{ val.7 }} | -{{ val.8 }} | -{{ val.9 }} | -{{ val.10 }} | -{{ val.11 }} | -{{ val.12 }} | -{{ val.13 }} | -