Exemple #1
0
    def get(self):
        c = Chart()
        m = Monitor()

        #获取cpu的信息
        cpu_info = m.cpu()

        #返回字典格式
        data = dict(
            #返回水球图
            cpu_liquid=c.liquid_html('cpu_avg', 'CPU平均使用率',
                                     cpu_info['percent_avg']), )

        self.render('index.html', data=data)
Exemple #2
0
def save_log():
    """保存日志的函数"""
    m = Monitor()
    cpu_info, swap_info, mem_info = m.cpu(), m.swap(), m.mem()
    _date_time, _date, _time = dt()
    # 1.创建会话
    session = ORM.db()
    try:
        # cpu
        cpu = Cpu(
            percent=cpu_info['percent_avg'],
            create_date=_date,
            create_time=_time,
            create_dt=_date_time,
        )
        # 交换分区
        swap = Swap(
            percent=swap_info['percent'],
            total=swap_info['total'],
            used=swap_info['used'],
            free=swap_info['free'],
            create_date=_date,
            create_time=_time,
            create_dt=_date_time,
        )
        # 内存
        mem = Mem(
            percent=mem_info['percent'],
            total=mem_info['total'],
            used=mem_info['used'],
            free=mem_info['free'],
            create_date=_date,
            create_time=_time,
            create_dt=_date_time,
        )

        # 提交至数据库
        session.add(cpu)
        session.add(swap)
        session.add(mem)
    except Exception as e:
        session.rollback()  # 出错回滚
        print('出错回滚:{}'.format(e))
    else:
        session.commit()  # 正常,提交
        print('正常,提交')
    finally:
        session.close()  # 关闭会话
        print('关闭会话')
Exemple #3
0
 def get_response(self):
     m = Monitor()
     c = Chart()
     cpu_info = m.cpu()
     mem_info = m.mem()
     swap_info = m.swap()
     net_info = m.net()
     disk_info = m.disk()
     net_pie = [
         c.pie_two_html(
             "net{}".format(k + 1),
             "{}网卡信息".format(v["name"]),
             "收发包数统计",
             "收发字节统计",
             ["收包数", "发包数"],
             ["收字节", "发字节"],
             [v["packets_recv"], v["packets_sent"]],
             [v["bytes_recv"], v["bytes_sent"]],
         )
         for k, v in enumerate(net_info) if v["packets_recv"] and v['packets_sent']
     ]
     self.html("index.html",
               data=dict(
                   title="系统监控",
                   cpu_info=cpu_info,
                   mem_info=mem_info,
                   swap_info=swap_info,
                   net_info=net_info,
                   disk_info=disk_info,
                   cpu_liquid=c.liquid_html("cpu_avg", "CPU平均使用率", cpu_info['percent_avg']),
                   mem_gauge=c.gauge_html("mem", "内存使用率", mem_info['percent']),
                   swap_gauge=c.gauge_html("swap", "交换分区使用率", mem_info['percent']),
                   net_pie=net_pie,
               )
               )
Exemple #4
0
def save_log():
    m = Monitor()
    cpu_info, mem_info, swap_info = m.cpu(), m.mem(), m.swap()
    _date, _time, _date_time = dt()
    # 1.创建会话
    session = ORM.db()
    try:
        # CPU
        cpu = Cpu(
            percent=cpu_info["percent_avg"],
            create_date=_date,
            create_time=_time,
            create_dt=_date_time
        )
        # 内存
        mem = Mem(
            percent=mem_info['percent'],
            total=mem_info['total'],
            used=mem_info['used'],
            free=mem_info['free'],
            create_date=_date,
            create_time=_time,
            create_dt=_date_time
        )
        # 交换分区
        swap = Swap(
            percent=swap_info['percent'],
            total=swap_info['total'],
            used=swap_info['used'],
            free=swap_info['free'],
            create_date=_date,
            create_time=_time,
            create_dt=_date_time
        )
        # 提交至数据块
        session.add(cpu)
        session.add(mem)
        session.add(swap)
    except Exception as e:
        session.rollback()  # 如果发送异常回滚
    else:
        session.commit()  # 没有异常提交
    finally:
        session.close()  # 无论是否发生异常关闭
Exemple #5
0
def save_log():
    m = Monitor()
    cpu_info, mem_info, swap_info = m.cpu(), m.mem(), m.swap()
    now_date, now_time, now_date_time = dt()
    # 1.创建会话
    session = ORM.db()
    try:
        # CPU
        cpu = Cpu(percent=cpu_info["percent_avg"],
                  create_date=now_date,
                  create_time=now_time,
                  create_dt=now_date_time)
        # 内存
        mem = Mem(percent=mem_info['percent'],
                  total=mem_info['total'],
                  used=mem_info['used'],
                  free=mem_info['free'],
                  create_date=now_date,
                  create_time=now_time,
                  create_dt=now_date_time)
        # 交换分区
        swap = Swap(percent=swap_info['percent'],
                    total=swap_info['total'],
                    used=swap_info['used'],
                    free=swap_info['free'],
                    create_date=now_date,
                    create_time=now_time,
                    create_dt=now_date_time)
        # 提交数据
        session.add(cpu)
        session.add(mem)
        session.add(swap)
    except Exception as e:
        print(e)
        # 异常回滚
        session.rollback()
    else:
        # 正常提交
        session.commit()
    finally:
        # 关闭会话
        session.close()
 def on_message(self, message):
     try:
         m = Monitor()
         data = dict()
         if message == "system":
             data = dict(mem=m.mem(),
                         swap=m.swap(),
                         cpu=m.cpu(),
                         disk=m.disk(),
                         net=m.net(),
                         dt=m.dt())
         RealTimeHandler.send_updates(json.dumps(data))
     except Exception as e:
         print(e)
Exemple #7
0
 def on_message(self, message):
     try:
         m = Monitor()
         data = dict()
         if message == "system":
             data = dict(mem=m.mem(),
                         swap=m.swap(),
                         cpu=m.cpu(),
                         disk=m.disk(),
                         net=m.net(),
                         dt=m.dt())
         # 对消息进行处理,把新的消息推送到所有连接的客户端
         self.broadcast(self.waiters, json.dumps(data))  # 广播
     except Exception as e:
         print(e)
Exemple #8
0
 def on_message(self, message):
     """接收消息"""
     try:
         m = Monitor()
         data = dict()
         if message == 'system':
             data = dict(
                 mem=m.mem(),
                 swap=m.swap(),
                 cpu=m.cpu(),
                 disk=m.disk(),
                 net=m.net(),
                 dt=m.dt()
             )
             # pprint(data)
             # 接收消息并处理,把新消息发给所有客户端
             self.broadcast(self.waiters, json.dumps(data))  # 广播
     except Exception as e:
         print(e)
Exemple #9
0
    def get(self):
        # self.write('<h1>硬件实时监控系统</h1>')
        c = Chart()  # 生成图对象
        m = Monitor()  # 获取系统信息对象
        # CPU信息
        cpu_info = m.cpu()

        # 内存信息
        mem_info = m.mem()

        # 交换分区信息
        swap_info = m.swap()

        # 网络信息
        net_info = m.net()
        net_pie = [
            c.pie_two_html(chart_id="net{}".format(k + 1),
                           title="{}网卡信息".format(v['name']),
                           sub_title1='收发包数统计',
                           sub_title2='收发字节统计',
                           key1=['收包数', '发包数'],
                           value1=[v['packets_recv'], v['packets_sent']],
                           key2=['收字节数', '发字节数'],
                           value2=[v['bytes_recv'], v['bytes_sent']])
            for k, v in enumerate(net_info)
            if v['packets_recv'] and v['packets_sent']
        ]

        # 磁盘信息
        disk_info = m.disk()

        self.render('index.html',
                    data=dict(
                        title='系统监控',
                        cpu_liquid=c.liquid_html('cpu_avg', 'CPU平均使用率',
                                                 cpu_info['percent_avg']),
                        cpu_info=cpu_info,
                        mem_gauge=c.gauge_html('mem', '内存使用率',
                                               mem_info['percent']),
                        mem_info=mem_info,
                        swap_gauge=c.gauge_html('swap', '交换分区使用率',
                                                swap_info['percent']),
                        swap_info=swap_info,
                        net_pie=net_pie,
                        net_info=net_info,
                        disk_info=disk_info,
                    ))
Exemple #10
0
 async def get(self):
     # 实例化系统信息类
     monitor = Monitor()
     # 实例化可视化图表类
     chart = Chart()
     # CPU信息
     cpu_info = monitor.cpu()
     # 内存信息
     mem_info = monitor.mem()
     # 交换分区
     swap_info = monitor.swap()
     # 网络信息
     net_info = monitor.net()
     # 磁盘信息
     disk_info = monitor.disk()
     # 网络信息
     net_pie = [
         chart.pie_two_html(
             "net{}".format(k + 1),
             "{}网卡信息".format(v["name"]),
             "收发包数统计",
             "收发字节统计",
             ["收包数", "发包数"],
             ["收字节", "发字节"],
             [v["packets_recv"], v["packets_sent"]],
             [v["bytes_recv"], v["bytes_sent"]],
         )
         for k, v in enumerate(net_info) if v["packets_recv"] and v['packets_sent']
     ]
     # 渲染视图
     self.render(
         "index.html",
         data=dict(
             title="系统监控",
             cpu_info=cpu_info,
             mem_info=mem_info,
             swap_info=swap_info,
             net_info=net_info,
             disk_info=disk_info,
             cpu_liquid=chart.liquid_html("cpu_avg", "CPU平均使用率", cpu_info['percent_avg']),
             mem_gauge=chart.gauge_html("mem", "内存使用率", mem_info['percent']),
             swap_gauge=chart.gauge_html("swap", "交换分区使用率", mem_info['percent']),
             net_pie=net_pie,
         )
     )
Exemple #11
0
 def get_response(self):
     # self.write("<h1>我们要开发一个硬件实时监控系统</h1>")
     m = Monitor()
     c = Chart()
     cpu_info = m.cpu()
     mem_info = m.mem()
     swap_info = m.swap()
     net_info = m.net()
     disk_info = m.disk()
     # print(cpu_info)
     net_pie = [
         c.pie_two_html(
             "net{}".format(k + 1),
             "{}网卡信息".format(v["name"]),
             "收发包数统计",
             "收发字节统计",
             ["收包数", "发包数"],
             ["收字节", "发字节"],
             [v["packets_recv"], v["packets_sent"]],
             [v["bytes_recv"], v["bytes_sent"]],
         ) for k, v in enumerate(net_info)
         if v["packets_recv"] and v["packets_sent"]  # 只接收有收包数和发包数的网卡信息
     ]
     # 这里我们在views_common.py的CommonHandler里面重载的render方法:html
     self.html("index.html",
               data=dict(
                   title="系统监控",
                   cpu_info=cpu_info,
                   mem_info=mem_info,
                   swap_info=swap_info,
                   net_info=net_info,
                   disk_info=disk_info,
                   cpu_liquid=c.liquid_html("cpu_avg", "CPU平均使用率",
                                            cpu_info["percent_avg"]),
                   mem_gauge=c.gauge_html("mem", "内存使用率",
                                          mem_info["percent"]),
                   swap_gauge=c.gauge_html("swap", "交换分区使用率",
                                           swap_info["percent"]),
                   net_pie=net_pie,
               ))
 def users(self):
     """登录用户"""
     m = Monitor()
     return m.get_user()
 def started(self):
     """开机时间"""
     m = Monitor()
     return m.get_last_boot()
Exemple #14
0
 def users(self):
     m = Monitor()
     return m.logined_users()
Exemple #15
0
 def started(self):
     m = Monitor()
     return m.lastest_start_time()