zoukankan      html  css  js  c++  java
  • tornado硬件管理系统-内存与swap的实现(6)

    定义仪表盘:

        def gauge_html(self, chart_id, title, val):
            gauge = Gauge(
                "{}-{}".format(self.dt, title),
                title_pos="center",
                width="100%",
                title_text_size=14,
                title_color="white",
                height=300
            )
            gauge.chart_id = chart_id
            gauge.add(
                "",
                "",
                val,
                scale_range=[0, 100],
                is_legend_show=False
            )
            return gauge.render_embed()

    设置html部分:

     <div class="col-md-6 pad-left">
                            <div class="border border-white">{% raw data['swap_gauge'] %}</div>
                            <table class="table table-sm table-bordered">
                                <tr>
                                    <td class="text-primary" style=" 30%">使用率(%)</td>
                                    <td id="swap_percent" class="text-danger">{{ data['swap_info']['percent'] }}</td>
                                </tr>
                                <tr>
                                    <td class="text-primary" style=" 30%">总量(GB)</td>
                                    <td id="swap_total" class="text-danger">{{ data['swap_info']['total'] }}</td>
                                </tr>
                                <tr>
                                    <td class="text-primary" style=" 30%">使用量(GB)</td>
                                    <td id="swap_used" class="text-danger">{{ data['swap_info']['used'] }}</td>
                                </tr>
                                <tr>
                                    <td class="text-primary" style=" 30%">剩余量(GB)</td>
                                    <td id="swap_free" class="text-danger">{{ data['swap_info']['free'] }}</td>
                                </tr>
                            </table>
                        </div>
                    </div>

    渲染:

    #-*- conding: utf-8 -*-
    # import tornado.web
    from app.tools.monitor import Moniter
    from app.tools.chart import Chart
    from app.views.views_common import CommonHandler
    #定义一个首页视图
    class IndexHandler(CommonHandler):
        def get(self,*args,**kwargs):
            m = Moniter()
            c = Chart()
            cpu_info = m.cpu()
            mem_info = m.men()
            swap_info = m.swap()
            data = dict(
                cpu_info=cpu_info,
                mem_info=mem_info,
                swap_info=swap_info,
                cpu_liquid=c.liquid_html(chart_id="cpu_avg",title="Cpu-Percent",val=cpu_info['percent_avg']),
                mem_gauge=c.gauge_html("mem", "内存使用率", mem_info['percent']),
                swap_gauge=c.gauge_html("swap", "交换分区使用率", mem_info['percent']),
            )
    
    
            self.render("index.html",data=data
               )

    实时更新:

      //实时更新内存
        option_mem.series[0].data[0].value = data['mem']['percent'];
        option_mem.title[0].text = data['dt']+"-内存使用率";
        myChart_mem.setOption(option_mem);
        document.getElementById("mem_percent").innerText = data['mem']['percent'];
        document.getElementById("mem_total").innerText = data['mem']['total'];
        document.getElementById("mem_used").innerText = data['mem']['used'];
        document.getElementById("mem_free").innerText = data['mem']['free'];
    
    
        //实时更新交换分区
        option_swap.series[0].data[0].value = data['swap']['percent'];
        option_swap.title[0].text = data['dt']+"-交换分区使用率";
        myChart_swap.setOption(option_swap);
        document.getElementById("swap_percent").innerText = data['swap']['percent'];
        document.getElementById("swap_total").innerText = data['swap']['total'];
        document.getElementById("swap_used").innerText = data['swap']['used'];
        document.getElementById("swap_free").innerText = data['swap']['free'];

    结果:

  • 相关阅读:
    我和小美的撸码日记(3)之一句话搞定MVC表单页数据绑定与提交
    我和小美的撸码日记--基于MVC+Jqgrid的.Net快速开发框架
    我和小美的撸码日记(2)之第一个基于MVC+Jqgrid的列表页面
    我和小美的撸码日记(1)之软件也需靠脸吃饭,带您做张明星脸(附后台经典框架 DEMO 下载)
    Mysql 下DELETE操作表别名问题
    DynaActionForm(动态ActionForm)的使用
    structs中通过LabelValueBean构建下拉列表
    JavaScript中==和===区别
    JAVA包装类的缓存范围
    JAVA循环迭代中删除或添加集合数据报java.util.ConcurrentModificationException错误
  • 原文地址:https://www.cnblogs.com/topass123/p/13123779.html
Copyright © 2011-2022 走看看