|
@@ -10,7 +10,7 @@
|
|
|
<tbody>
|
|
|
<tr>
|
|
|
<td>
|
|
|
- <div class="cell-card">核心数: </div>
|
|
|
+ <div class="cell-card">CPU数: </div>
|
|
|
</td>
|
|
|
<td>
|
|
|
<div class="cell-card">{{ sysInfo.cpuNum }}</div>
|
|
@@ -18,6 +18,15 @@
|
|
|
</tr>
|
|
|
<tr>
|
|
|
<td>
|
|
|
+ <div class="cell-card">核心数: </div>
|
|
|
+ </td>
|
|
|
+ <td>
|
|
|
+ <div class="cell-card">{{ sysInfo.cpuCores }}</div>
|
|
|
+ </td>
|
|
|
+ </tr>
|
|
|
+
|
|
|
+ <tr>
|
|
|
+ <td>
|
|
|
<div class="cell-card">使用率:</div>
|
|
|
</td>
|
|
|
<td>
|
|
@@ -288,7 +297,7 @@ import 'echarts-wordcloud';
|
|
|
import api from '/@/api/system';
|
|
|
let interval: any = null;
|
|
|
export default defineComponent({
|
|
|
- name: 'monitor',
|
|
|
+ name: 'monitor',
|
|
|
components: {},
|
|
|
setup() {
|
|
|
const { proxy } = getCurrentInstance() as any;
|
|
@@ -315,7 +324,6 @@ export default defineComponent({
|
|
|
],
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
function setOptChart2(value: number) {
|
|
|
myChart2.setOption({
|
|
|
series: [
|
|
@@ -330,7 +338,6 @@ export default defineComponent({
|
|
|
],
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
function setOptChart3(value: number) {
|
|
|
myChart3.setOption({
|
|
|
series: [
|
|
@@ -399,7 +406,6 @@ export default defineComponent({
|
|
|
myChart1.setOption(option);
|
|
|
state.myCharts.push(myChart1);
|
|
|
};
|
|
|
-
|
|
|
//内存
|
|
|
const initChartRAM = () => {
|
|
|
myChart2 = echarts.init(proxy.$refs.chartsWarningRef2);
|
|
@@ -453,7 +459,6 @@ export default defineComponent({
|
|
|
myChart2.setOption(option);
|
|
|
state.myCharts.push(myChart2);
|
|
|
};
|
|
|
-
|
|
|
//磁盘
|
|
|
const initChartDISK = () => {
|
|
|
myChart3 = echarts.init(proxy.$refs.chartsWarningRef3);
|
|
@@ -515,45 +520,94 @@ export default defineComponent({
|
|
|
initChartDISK();
|
|
|
});
|
|
|
|
|
|
- let ws: WebSocket | null = null;
|
|
|
-
|
|
|
function startWs() {
|
|
|
- ws = null;
|
|
|
- ws = new WebSocket(import.meta.env.VITE_WS_URL + '/monitorServer/ws');
|
|
|
- ws.onopen = () => {};
|
|
|
- ws.onmessage = ({ data: dataStr }) => {
|
|
|
- const data = JSON.parse(dataStr);
|
|
|
- state.sysInfo = data;
|
|
|
- setOptChart1(data.cpuUsed);
|
|
|
- setOptChart2(data.memUsage);
|
|
|
- setOptChart3(data.diskUsedPercent);
|
|
|
- // console.log(data);
|
|
|
- };
|
|
|
- // ws.onclose = () => {
|
|
|
- // setTimeout(() => {
|
|
|
- // startWs();
|
|
|
- // }, 3000);
|
|
|
+ // ws = null;
|
|
|
+ // ws = new WebSocket(import.meta.env.VITE_WS_URL + '/monitorServer/ws');
|
|
|
+ // ws.onopen = () => {};
|
|
|
+ // ws.onmessage = ({ data: dataStr }) => {
|
|
|
+ // const data = JSON.parse(dataStr);
|
|
|
+ // state.sysInfo = data;
|
|
|
+ // setOptChart1(data.cpuUsed);
|
|
|
+ // setOptChart2(data.memUsage);
|
|
|
+ // setOptChart3(data.diskUsedPercent);
|
|
|
// };
|
|
|
- }
|
|
|
+
|
|
|
+ const es = new EventSource(import.meta.env.VITE_SERVER_URL+"/subscribe/sysenv");
|
|
|
+
|
|
|
+ es.addEventListener("host", displayHost);
|
|
|
+ es.addEventListener("mem", displayMem);
|
|
|
+ es.addEventListener("cpu", displayCpu);
|
|
|
+ es.addEventListener("sysLoad", displaySysLoad);
|
|
|
+ es.addEventListener("disk", displayDisk);
|
|
|
+ }
|
|
|
|
|
|
startWs();
|
|
|
|
|
|
- function getSystemInfo() {
|
|
|
- api.getSysInfo().then((res: any) => {
|
|
|
- state.sysInfo = res;
|
|
|
- setOptChart1(res.cpuUsed);
|
|
|
- setOptChart2(res.memUsage);
|
|
|
- setOptChart3(res.diskUsedPercent);
|
|
|
+ function displayHost(event: { data: any; }) {
|
|
|
+ const data=JSON.parse(event.data);
|
|
|
+ state.sysInfo.sysOsName = data.os
|
|
|
+ state.sysInfo.sysOsArch = data.kernelArch
|
|
|
+ state.sysInfo.sysComputerName = data.hostname
|
|
|
+ state.sysInfo.goStartTime = data.bootTime
|
|
|
+ state.sysInfo.goRunTime = data.uptime
|
|
|
+ }
|
|
|
|
|
|
- });
|
|
|
- }
|
|
|
+ function displayMem(event: { data: any; }) {
|
|
|
+ const data=JSON.parse(event.data);
|
|
|
+ setOptChart2(data.usedPercent.toFixed(2));
|
|
|
+ state.sysInfo.memTotal = data.total
|
|
|
+ state.sysInfo.memUsed = data.used
|
|
|
+ state.sysInfo.memFree = data.free
|
|
|
+ state.sysInfo.goUsed = data.goUsed
|
|
|
+ state.sysInfo.memUsage = data.usedPercent.toFixed(2)
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ function displayCpu(event: { data: any; }) {
|
|
|
+ const data=JSON.parse(event.data);
|
|
|
+ state.sysInfo.cpuNum = data.Number
|
|
|
+ state.sysInfo.cpuCores = data.Cores
|
|
|
+ state.sysInfo.cpuUsed = data.UsedPercent[0].toFixed(2)
|
|
|
+ setOptChart1(data.UsedPercent[0].toFixed(2));
|
|
|
+
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ function displaySysLoad(event: { data: any; }) {
|
|
|
+ const data=JSON.parse(event.data)
|
|
|
+ state.sysInfo.cpuAvg5 = data.load5.toFixed(2)
|
|
|
+ state.sysInfo.cpuAvg15 = data.load15.toFixed(2)
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+ function displayDisk(event: { data: any; }) {
|
|
|
+ const data=JSON.parse(event.data)
|
|
|
+ state.sysInfo.diskTotal = data.total
|
|
|
+ state.sysInfo.diskUsed = data.used
|
|
|
+ state.sysInfo.diskUsedPercent = data.usedPercent.toFixed(2)
|
|
|
+ setOptChart3(data.usedPercent.toFixed(2));
|
|
|
+
|
|
|
+ };
|
|
|
+
|
|
|
+
|
|
|
+ // function getSystemInfo() {
|
|
|
+ // api.getSysInfo().then((res: any) => {
|
|
|
+ // state.sysInfo = res;
|
|
|
+ // setOptChart1(res.cpuUsed);
|
|
|
+ // setOptChart2(res.memUsage);
|
|
|
+ // setOptChart3(res.diskUsedPercent);
|
|
|
+ //
|
|
|
+ // });
|
|
|
+ // }
|
|
|
|
|
|
return {
|
|
|
...toRefs(state),
|
|
|
- getSystemInfo,
|
|
|
+ // getSystemInfo,
|
|
|
setOptChart1,
|
|
|
setOptChart2,
|
|
|
- ws,
|
|
|
+ setOptChart3,
|
|
|
+
|
|
|
+ // ws,
|
|
|
};
|
|
|
},
|
|
|
created() {
|
|
@@ -565,9 +619,9 @@ export default defineComponent({
|
|
|
// }
|
|
|
},
|
|
|
unmounted() {
|
|
|
- if (this.ws) {
|
|
|
- (this.ws as WebSocket).close();
|
|
|
- }
|
|
|
+ // if (this.ws) {
|
|
|
+ // (this.ws as WebSocket).close();
|
|
|
+ // }
|
|
|
if (interval) {
|
|
|
clearInterval(interval);
|
|
|
interval = null;
|
|
@@ -619,6 +673,7 @@ export default defineComponent({
|
|
|
},
|
|
|
},
|
|
|
});
|
|
|
+
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|