extends ../../../core/view/layout prepend header title #{t('server_monitor')} | #{t(config.web.t_name)} append header link(rel='stylesheet', href='/plugin/linux/style/monitor.css') block content #content.container .row .col-md-4 .panel.panel-default .panel-heading h3.panel-title System table.table tbody tr td Hostname td= system.hostname tr td System td= system.system tr td CPU td= system.cpu tr td Time td= system.time tr td Uptime td #{(system.uptime / 3600).toFixed(1)} hours tr td Loadavg td= system.loadavg.join(', ') tr td Address td= system.address.join(', ') .col-md-8 .panel.panel-default .panel-heading h3.panel-title Memory & Storage .panel-body p Memory .progress.multi-progress .progress-bar.progress-bar-danger(role='progressbar', style='width: #{memory.used_per}%;') span(title= '#{memory.used}M') #{memory.used_per}% .progress-bar.progress-bar-info(role='progressbar', style='width: #{memory.cached_per}%;') span(title= '#{memory.cached}M') #{memory.cached_per}% .progress-bar.progress-bar-success(role='progressbar', style='width: #{memory.buffers_per}%;') span(title= '#{memory.buffers}M') #{memory.buffers_per}% .progress-bar.blank(role='progressbar', style='width: #{memory.free_per}%;') span(title= '#{memory.free}M') #{memory.free_per}% p SWAP .progress.multi-progress .progress-bar.progress-bar-warning(role='progressbar', style='width: #{memory.swap_used_per}%;') span(title= '#{memory.swap_used_per}M') #{memory.swap_used_per}% .progress-bar.blank(role='progressbar', style='width: #{memory.swap_free_per}%;') span(title= '#{memory.swap_free}M') #{memory.swap_free_per}% p Storage .progress.multi-progress .progress-bar.progress-bar-warning(role='progressbar', style='width: #{storage.used_per}%;') span(title= '#{storage.used}G') #{storage.used_per}% .progress-bar.blank(role='progressbar', style='width: #{storage.free_per}%;') span(title= '#{storage.free}G') #{storage.free_per}% .row .panel.panel-default .panel-heading h3.panel-title Users table.table.table-hover thead tr th User th Process th CPU 1 Hour th Memory 1 Hour th Storage tbody for item in resources_usage tr td= item.username td= item.process td #{item.cpu}s td #{item.memory.toFixed(1)}M td #{(item.storage).toFixed(1)}M .row .panel.panel-default.process-list .panel-heading h3.panel-title Process table.table.table-hover thead tr th USER th PID th %CPU th %MEM th VSZ th RSS th TTY th STAT th START th TIME th COMMAND tbody for process in process_list tr td= process.user td= process.pid td= process.cpu_per td= process.mem_per td= process.vsz td= process.rss td= process.tty td= process.stat td= process.start td= process.time td!= _.escape(process.command).replace(/ /g, ' ')