|
@@ -0,0 +1,132 @@
|
|
|
+<template>
|
|
|
+ <div class="app-container">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24" class="card-box">
|
|
|
+ <el-card>
|
|
|
+ <div slot="header"><span>基本信息</span></div>
|
|
|
+ <div class="el-table el-table--enable-row-hover el-table--medium">
|
|
|
+ <table cellspacing="0" style="width: 100%">
|
|
|
+ <tbody>
|
|
|
+ <tr>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">Redis版本</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.redis_version }}</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">运行模式</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.redis_mode == "standalone" ? "单机" : "集群" }}</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">端口</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.tcp_port }}</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">客户端数</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.connected_clients }}</div></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">运行时间(天)</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.uptime_in_days }}</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">使用内存</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.used_memory_human }}</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">使用CPU</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ parseFloat(cache.info.used_cpu_user_children).toFixed(2) }}</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">内存配置</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.maxmemory_human }}</div></td>
|
|
|
+ </tr>
|
|
|
+ <tr>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">AOF是否开启</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.aof_enabled == "0" ? "否" : "是" }}</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">RDB是否成功</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.rdb_last_bgsave_status }}</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">Key数量</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.dbSize">{{ cache.dbSize }} </div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell">网络入口/出口</div></td>
|
|
|
+ <td class="el-table__cell is-leaf"><div class="cell" v-if="cache.info">{{ cache.info.instantaneous_input_kbps }}kps/{{cache.info.instantaneous_output_kbps}}kps</div></td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </div>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="12" class="card-box">
|
|
|
+ <el-card>
|
|
|
+ <div slot="header"><span>活动次数统计</span></div>
|
|
|
+ <div class="el-table el-table--enable-row-hover el-table--medium">
|
|
|
+ <div ref="activities" style="height: 420px" />
|
|
|
+ </div>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <!-- <el-col :span="12" class="card-box">
|
|
|
+ <el-card>
|
|
|
+ <div slot="header"><span>命令统计</span></div>
|
|
|
+ <div class="el-table el-table--enable-row-hover el-table--medium">
|
|
|
+ <div ref="commandstats" style="height: 420px" />
|
|
|
+ </div>
|
|
|
+ </el-card>
|
|
|
+ </el-col> -->
|
|
|
+
|
|
|
+ <el-col :span="12" class="card-box">
|
|
|
+ <el-card>
|
|
|
+ <div slot="header">
|
|
|
+ <span>内存信息</span>
|
|
|
+ </div>
|
|
|
+ <div class="el-table el-table--enable-row-hover el-table--medium">
|
|
|
+ <div ref="usedmemory" style="height: 420px" />
|
|
|
+ </div>
|
|
|
+ </el-card>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { getCache } from "@/api/monitor/cache";
|
|
|
+import { statActivitiesByType } from "@/api/community/stat";
|
|
|
+import echarts from "echarts";
|
|
|
+
|
|
|
+export default {
|
|
|
+ name: "Cache",
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ activities: null,
|
|
|
+ // cache信息
|
|
|
+ cache: []
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getList();
|
|
|
+ this.openLoading();
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ /** 查缓存询信息 */
|
|
|
+ getList() {
|
|
|
+ getCache().then((response) => {
|
|
|
+ this.cache = response.data;
|
|
|
+ this.$modal.closeLoading();
|
|
|
+ });
|
|
|
+
|
|
|
+ statActivitiesByType().then((response) => {
|
|
|
+ this.activities = echarts.init(this.$refs.activities, "macarons");
|
|
|
+ this.activities.setOption({
|
|
|
+ tooltip: {
|
|
|
+ trigger: "item",
|
|
|
+ formatter: "{a} <br/>{b} : {c} ({d}%)",
|
|
|
+ },
|
|
|
+ series: [
|
|
|
+ {
|
|
|
+ name: "活动名称",
|
|
|
+ type: "pie",
|
|
|
+ roseType: "radius",
|
|
|
+ radius: [15, 95],
|
|
|
+ center: ["50%", "38%"],
|
|
|
+ data: response.data.activitiesStats,
|
|
|
+ animationEasing: "cubicInOut",
|
|
|
+ animationDuration: 1000,
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 打开加载层
|
|
|
+ openLoading() {
|
|
|
+ this.$modal.loading("正在加载活动统计数据,请稍候!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+};
|
|
|
+</script>
|