front end: server state info
This commit is contained in:
@@ -0,0 +1,169 @@
|
||||
<template>
|
||||
<div>
|
||||
<el-row :gutter="15" class="system_state">
|
||||
<el-col :span="12">
|
||||
<el-card v-if="state.os" class="card_item">
|
||||
<div slot="header">Runtime</div>
|
||||
<div>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">os:</el-col>
|
||||
<el-col :span="12" v-text="state.os.goos"></el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">cpu nums:</el-col>
|
||||
<el-col :span="12" v-text="state.os.numCpu"></el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">compiler:</el-col>
|
||||
<el-col :span="12" v-text="state.os.compiler"></el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">go version:</el-col>
|
||||
<el-col :span="12" v-text="state.os.goVersion"></el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">goroutine nums:</el-col>
|
||||
<el-col :span="12" v-text="state.os.numGoroutine"></el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-card v-if="state.disk" class="card_item">
|
||||
<div slot="header">Disk</div>
|
||||
<div>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">total (MB)</el-col>
|
||||
<el-col :span="12" v-text="state.disk.totalMb"></el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">used (MB)</el-col>
|
||||
<el-col :span="12" v-text="state.disk.usedMb"></el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">total (GB)</el-col>
|
||||
<el-col :span="12" v-text="state.disk.totalGb"></el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">used (GB)</el-col>
|
||||
<el-col :span="12" v-text="state.disk.usedGb"></el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-progress
|
||||
type="dashboard"
|
||||
:percentage="state.disk.usedPercent"
|
||||
:color="colors"
|
||||
></el-progress>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="15" class="system_state">
|
||||
<el-col :span="12">
|
||||
<el-card
|
||||
class="card_item"
|
||||
v-if="state.cpu"
|
||||
:body-style="{ height: '180px', 'overflow-y': 'scroll' }"
|
||||
>
|
||||
<div slot="header">CPU</div>
|
||||
<div>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">physical number of cores:</el-col>
|
||||
<el-col :span="12" v-text="state.cpu.cores"> </el-col>
|
||||
</el-row>
|
||||
<template v-for="(item, index) in state.cpu.cpus">
|
||||
<el-row :key="index" :gutter="10">
|
||||
<el-col :span="12">core {{ index }}:</el-col>
|
||||
<el-col :span="12"
|
||||
><el-progress
|
||||
type="line"
|
||||
:percentage="+item.toFixed(0)"
|
||||
:color="colors"
|
||||
></el-progress
|
||||
></el-col>
|
||||
</el-row>
|
||||
</template>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-card class="card_item" v-if="state.ram">
|
||||
<div slot="header">Ram</div>
|
||||
<div>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">total (MB)</el-col>
|
||||
<el-col :span="12" v-text="state.ram.totalMb"></el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">used (MB)</el-col>
|
||||
<el-col :span="12" v-text="state.ram.usedMb"></el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">total (GB)</el-col>
|
||||
<el-col :span="12" v-text="state.ram.totalMb / 1024"></el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">used (GB)</el-col>
|
||||
<el-col
|
||||
:span="12"
|
||||
v-text="(state.ram.usedMb / 1024).toFixed(2)"
|
||||
></el-col>
|
||||
</el-row>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-progress
|
||||
type="dashboard"
|
||||
:percentage="state.ram.usedPercent"
|
||||
:color="colors"
|
||||
></el-progress>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-card>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getSystemState } from "@/api/system.js";
|
||||
export default {
|
||||
name: "State",
|
||||
data() {
|
||||
return {
|
||||
state: {},
|
||||
colors: [
|
||||
{ color: "#5cb87a", percentage: 20 },
|
||||
{ color: "#e6a23c", percentage: 40 },
|
||||
{ color: "#f56c6c", percentage: 80 },
|
||||
],
|
||||
};
|
||||
},
|
||||
created() {
|
||||
this.reload();
|
||||
},
|
||||
methods: {
|
||||
async reload() {
|
||||
const { data } = await getSystemState();
|
||||
this.state = data.server;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.system_state {
|
||||
padding: 10px;
|
||||
}
|
||||
|
||||
.card_item {
|
||||
height: 280px;
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user