From ae3addbc40e8db0ad3265e74df5ded776cf81650 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Thu, 1 Dec 2022 02:00:39 +0800 Subject: [PATCH] =?UTF-8?q?=E7=89=B9=E6=80=A7=EF=BC=88=E7=9B=91=E6=8E=A7?= =?UTF-8?q?=EF=BC=89=EF=BC=9ACPU=E5=92=8C=E5=86=85=E5=AD=98=E5=9B=BE?= =?UTF-8?q?=E8=A1=A8=E8=AE=BE=E7=BD=AEy=E8=BD=B4=E4=B8=BA=E5=85=B6?= =?UTF-8?q?=E6=9C=80=E5=A4=A7=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/Api/MonitorsController.php | 15 ++++++- resources/views/monitor.blade.php | 40 ++++++++++++++----- 2 files changed, 43 insertions(+), 12 deletions(-) diff --git a/app/Http/Controllers/Api/MonitorsController.php b/app/Http/Controllers/Api/MonitorsController.php index e394be6b..04545c06 100644 --- a/app/Http/Controllers/Api/MonitorsController.php +++ b/app/Http/Controllers/Api/MonitorsController.php @@ -87,7 +87,8 @@ class MonitorsController extends Controller } foreach ($data as $key => $value) { $info = json_decode($value['info'], true); - $res['data']['times'][] = Carbon::create($value['created_at'])->tz(config('app.timezone', 'PRC'))->isoFormat('MM-DD HH:mm'); + $res['data']['times'][] = Carbon::create($value['created_at'])->tz(config('app.timezone', + 'PRC'))->isoFormat('MM-DD HH:mm'); $res['data']['uptime']['uptime'][] = round($info['uptime'], 2); $res['data']['cpu']['use'][] = round($info['cpu_use'], 2); $res['data']['memory']['mem_use'][] = round($info['mem_use'], 2); @@ -97,6 +98,18 @@ class MonitorsController extends Controller $res['data']['network']['tx_now'][] = round($info['tx_now'] / 1024, 2); $res['data']['network']['rx_now'][] = round($info['rx_now'] / 1024, 2); } + // 插入总内存大小 + $result = explode("\n", shell_exec('free -m')); + foreach ($result as $key => $val) { + if (str_contains($val, 'Mem')) { + $mem_list = preg_replace("/\s+/", " ", $val); + break; + } + } + $mem_arr = explode(' ', $mem_list); + // 内存大小MB + $mem_total = $mem_arr[1]; + $res['data']['mem_total'] = round($mem_total, 2); return response()->json($res); } } diff --git a/resources/views/monitor.blade.php b/resources/views/monitor.blade.php index 673f2b23..b0859a49 100644 --- a/resources/views/monitor.blade.php +++ b/resources/views/monitor.blade.php @@ -228,6 +228,8 @@ markLine: { data: [{type: 'average', name: '平均值'}] } + }], [{ + type: 'value', }]); let cpuChart = renderEcharts('cpu_monitor', 'CPU监控', undefined, res.data.times, [{ name: '使用率', @@ -241,7 +243,15 @@ markLine: { data: [{type: 'average', name: '平均值'}] } - }], '{value} %', '单位 %'); + }], [{ + name: '单位 %', + min: 0, + max: 100, + type: 'value', + axisLabel: { + formatter: '{value} %' + } + }]); let memoryChart = renderEcharts('memory_monitor', '内存', { x: 'left', data: ["内存", "Swap"] @@ -269,7 +279,15 @@ markLine: { data: [{type: 'average', name: '平均值'}] } - }], '{value} M', '单位 MB'); + }], [{ + name: '单位 MB', + min: 0, + max: res.data.mem_total, + type: 'value', + axisLabel: { + formatter: '{value} M' + } + }]); let networkChart = renderEcharts('network_monitor', '网络', { x: 'left', data: ["出", "入"] @@ -297,7 +315,13 @@ markLine: { data: [{type: 'average', name: '平均值'}] } - }], '{value} Kb', '单位 Kb/s'); + }], [{ + name: '单位 Kb/s', + type: 'value', + axisLabel: { + formatter: '{value} Kb' + } + }]); // 在窗口大小改变时,重置图表大小 window.addEventListener("resize", function () { @@ -313,20 +337,14 @@ }); // 渲染图表 - function renderEcharts(element_id, title, legend = undefined, data_xAxis, series, formatter = '{value}', yName = '') { + function renderEcharts(element_id, title, legend = undefined, data_xAxis, series, yAxis = undefined) { var Chart = echarts.init(document.getElementById(element_id), layui.echartsTheme); var option = { title: {text: title, x: 'center', textStyle: {fontSize: 20}}, tooltip: {trigger: 'axis'}, legend: legend, xAxis: [{type: 'category', boundaryGap: false, data: data_xAxis}], - yAxis: [{ - name: yName, - type: 'value', - axisLabel: { - formatter: formatter - } - }], + yAxis: yAxis, dataZoom: { show: true, realtime: true,