forked from liweijie/education
1 line
11 KiB
JSON
1 line
11 KiB
JSON
{"remainingRequest":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\monitor\\cache\\index.vue?vue&type=script&lang=js","dependencies":[{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\src\\views\\monitor\\cache\\index.vue","mtime":1787567871619},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\babel-loader\\lib\\index.js","mtime":1787309793142},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1787309791955},{"path":"C:\\Users\\Admin\\Desktop\\education\\frontend\\node_modules\\vue-loader\\lib\\index.js","mtime":1787309793790}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:Ly8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KLy8KDQppbXBvcnQgeyBnZXRDYWNoZSB9IGZyb20gIkAvYXBpL21vbml0b3IvY2FjaGUiDQppbXBvcnQgKiBhcyBlY2hhcnRzIGZyb20gImVjaGFydHMiDQoNCmV4cG9ydCBkZWZhdWx0IHsNCiAgbmFtZTogIkNhY2hlIiwNCiAgZGF0YSgpIHsNCiAgICByZXR1cm4gew0KICAgICAgLy8g57uf6K6h5ZG95Luk5L+h5oGvDQogICAgICBjb21tYW5kc3RhdHM6IG51bGwsDQogICAgICAvLyDkvb/nlKjlhoXlrZgNCiAgICAgIHVzZWRtZW1vcnk6IG51bGwsDQogICAgICAvLyBjYWNoZeS/oeaBrw0KICAgICAgY2FjaGU6IFtdDQogICAgfQ0KICB9LA0KICBjcmVhdGVkKCkgew0KICAgIHRoaXMuZ2V0TGlzdCgpDQogICAgdGhpcy5vcGVuTG9hZGluZygpDQogIH0sDQogIG1ldGhvZHM6IHsNCiAgICAvKiog5p+l57yT5a2Y6K+i5L+h5oGvICovDQogICAgZ2V0TGlzdCgpIHsNCiAgICAgIGdldENhY2hlKCkudGhlbigocmVzcG9uc2UpID0+IHsNCiAgICAgICAgdGhpcy5jYWNoZSA9IHJlc3BvbnNlLmRhdGENCiAgICAgICAgdGhpcy4kbW9kYWwuY2xvc2VMb2FkaW5nKCkNCg0KICAgICAgICB0aGlzLmNvbW1hbmRzdGF0cyA9IGVjaGFydHMuaW5pdCh0aGlzLiRyZWZzLmNvbW1hbmRzdGF0cywgIm1hY2Fyb25zIikNCiAgICAgICAgdGhpcy5jb21tYW5kc3RhdHMuc2V0T3B0aW9uKHsNCiAgICAgICAgICB0b29sdGlwOiB7DQogICAgICAgICAgICB0cmlnZ2VyOiAiaXRlbSIsDQogICAgICAgICAgICBmb3JtYXR0ZXI6ICJ7YX0gPGJyLz57Yn0gOiB7Y30gKHtkfSUpIiwNCiAgICAgICAgICB9LA0KICAgICAgICAgIHNlcmllczogWw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICBuYW1lOiAi5ZG95LukIiwNCiAgICAgICAgICAgICAgdHlwZTogInBpZSIsDQogICAgICAgICAgICAgIHJvc2VUeXBlOiAicmFkaXVzIiwNCiAgICAgICAgICAgICAgcmFkaXVzOiBbMTUsIDk1XSwNCiAgICAgICAgICAgICAgY2VudGVyOiBbIjUwJSIsICIzOCUiXSwNCiAgICAgICAgICAgICAgZGF0YTogcmVzcG9uc2UuZGF0YS5jb21tYW5kU3RhdHMsDQogICAgICAgICAgICAgIGFuaW1hdGlvbkVhc2luZzogImN1YmljSW5PdXQiLA0KICAgICAgICAgICAgICBhbmltYXRpb25EdXJhdGlvbjogMTAwMCwNCiAgICAgICAgICAgIH0NCiAgICAgICAgICBdDQogICAgICAgIH0pDQogICAgICAgIHRoaXMudXNlZG1lbW9yeSA9IGVjaGFydHMuaW5pdCh0aGlzLiRyZWZzLnVzZWRtZW1vcnksICJtYWNhcm9ucyIpDQogICAgICAgIHRoaXMudXNlZG1lbW9yeS5zZXRPcHRpb24oew0KICAgICAgICAgIHRvb2x0aXA6IHsNCiAgICAgICAgICAgIGZvcm1hdHRlcjogIntifSA8YnIvPnthfSA6ICIgKyB0aGlzLmNhY2hlLmluZm8udXNlZF9tZW1vcnlfaHVtYW4sDQogICAgICAgICAgfSwNCiAgICAgICAgICBzZXJpZXM6IFsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgbmFtZTogIuWzsOWAvCIsDQogICAgICAgICAgICAgIHR5cGU6ICJnYXVnZSIsDQogICAgICAgICAgICAgIG1pbjogMCwNCiAgICAgICAgICAgICAgbWF4OiAxMDAwLA0KICAgICAgICAgICAgICBkZXRhaWw6IHsNCiAgICAgICAgICAgICAgICBmb3JtYXR0ZXI6IHRoaXMuY2FjaGUuaW5mby51c2VkX21lbW9yeV9odW1hbiwNCiAgICAgICAgICAgICAgfSwNCiAgICAgICAgICAgICAgZGF0YTogWw0KICAgICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgIHZhbHVlOiBwYXJzZUZsb2F0KHRoaXMuY2FjaGUuaW5mby51c2VkX21lbW9yeV9odW1hbiksDQogICAgICAgICAgICAgICAgICBuYW1lOiAi5YaF5a2Y5raI6ICXIiwNCiAgICAgICAgICAgICAgICB9DQogICAgICAgICAgICAgIF0NCiAgICAgICAgICAgIH0NCiAgICAgICAgICBdDQogICAgICAgIH0pDQogICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCAoKSA9PiB7DQogICAgICAgICAgdGhpcy5jb21tYW5kc3RhdHMucmVzaXplKCkNCiAgICAgICAgICB0aGlzLnVzZWRtZW1vcnkucmVzaXplKCkNCiAgICAgICAgfSkNCiAgICAgIH0pDQogICAgfSwNCiAgICAvLyDmiZPlvIDliqDovb3lsYINCiAgICBvcGVuTG9hZGluZygpIHsNCiAgICAgIHRoaXMuJG1vZGFsLmxvYWRpbmcoIuato+WcqOWKoOi9vee8k+WtmOebkeaOp+aVsOaNru+8jOivt+eojeWAme+8gSIpDQogICAgfQ0KICB9DQp9DQo="},{"version":3,"sources":["index.vue"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"index.vue","sourceRoot":"src/views/monitor/cache","sourcesContent":["<template>\r\n <div class=\"app-container\">\r\n <el-row :gutter=\"10\">\r\n <el-col :span=\"24\" class=\"card-box\">\r\n <el-card>\r\n <div slot=\"header\"><span><i class=\"el-icon-monitor\"></i> 基本信息</span></div>\r\n <div class=\"el-table el-table--enable-row-hover el-table--medium\">\r\n <table cellspacing=\"0\" style=\"width: 100%\">\r\n <tbody>\r\n <tr>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">Redis版本</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\" v-if=\"cache.info\">{{ cache.info.redis_version }}</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">运行模式</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\" v-if=\"cache.info\">{{ cache.info.redis_mode == \"standalone\" ? \"单机\" : \"集群\" }}</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">端口</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\" v-if=\"cache.info\">{{ cache.info.tcp_port }}</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">客户端数</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\" v-if=\"cache.info\">{{ cache.info.connected_clients }}</div></td>\r\n </tr>\r\n <tr>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">运行时间(天)</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\" v-if=\"cache.info\">{{ cache.info.uptime_in_days }}</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">使用内存</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\" v-if=\"cache.info\">{{ cache.info.used_memory_human }}</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">使用CPU</div></td>\r\n <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>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">内存配置</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\" v-if=\"cache.info\">{{ cache.info.maxmemory_human }}</div></td>\r\n </tr>\r\n <tr>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">AOF是否开启</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\" v-if=\"cache.info\">{{ cache.info.aof_enabled == \"0\" ? \"否\" : \"是\" }}</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">RDB是否成功</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\" v-if=\"cache.info\">{{ cache.info.rdb_last_bgsave_status }}</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">Key数量</div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\" v-if=\"cache.dbSize\">{{ cache.dbSize }} </div></td>\r\n <td class=\"el-table__cell is-leaf\"><div class=\"cell\">网络入口/出口</div></td>\r\n <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>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </el-card>\r\n </el-col>\r\n\r\n <el-col :span=\"12\" class=\"card-box\">\r\n <el-card>\r\n <div slot=\"header\"><span><i class=\"el-icon-pie-chart\"></i> 命令统计</span></div>\r\n <div class=\"el-table el-table--enable-row-hover el-table--medium\">\r\n <div ref=\"commandstats\" style=\"height: 420px\" />\r\n </div>\r\n </el-card>\r\n </el-col>\r\n\r\n <el-col :span=\"12\" class=\"card-box\">\r\n <el-card>\r\n <div slot=\"header\"><span><i class=\"el-icon-odometer\"></i> 内存信息</span></div>\r\n <div class=\"el-table el-table--enable-row-hover el-table--medium\">\r\n <div ref=\"usedmemory\" style=\"height: 420px\" />\r\n </div>\r\n </el-card>\r\n </el-col>\r\n </el-row>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport { getCache } from \"@/api/monitor/cache\"\r\nimport * as echarts from \"echarts\"\r\n\r\nexport default {\r\n name: \"Cache\",\r\n data() {\r\n return {\r\n // 统计命令信息\r\n commandstats: null,\r\n // 使用内存\r\n usedmemory: null,\r\n // cache信息\r\n cache: []\r\n }\r\n },\r\n created() {\r\n this.getList()\r\n this.openLoading()\r\n },\r\n methods: {\r\n /** 查缓存询信息 */\r\n getList() {\r\n getCache().then((response) => {\r\n this.cache = response.data\r\n this.$modal.closeLoading()\r\n\r\n this.commandstats = echarts.init(this.$refs.commandstats, \"macarons\")\r\n this.commandstats.setOption({\r\n tooltip: {\r\n trigger: \"item\",\r\n formatter: \"{a} <br/>{b} : {c} ({d}%)\",\r\n },\r\n series: [\r\n {\r\n name: \"命令\",\r\n type: \"pie\",\r\n roseType: \"radius\",\r\n radius: [15, 95],\r\n center: [\"50%\", \"38%\"],\r\n data: response.data.commandStats,\r\n animationEasing: \"cubicInOut\",\r\n animationDuration: 1000,\r\n }\r\n ]\r\n })\r\n this.usedmemory = echarts.init(this.$refs.usedmemory, \"macarons\")\r\n this.usedmemory.setOption({\r\n tooltip: {\r\n formatter: \"{b} <br/>{a} : \" + this.cache.info.used_memory_human,\r\n },\r\n series: [\r\n {\r\n name: \"峰值\",\r\n type: \"gauge\",\r\n min: 0,\r\n max: 1000,\r\n detail: {\r\n formatter: this.cache.info.used_memory_human,\r\n },\r\n data: [\r\n {\r\n value: parseFloat(this.cache.info.used_memory_human),\r\n name: \"内存消耗\",\r\n }\r\n ]\r\n }\r\n ]\r\n })\r\n window.addEventListener(\"resize\", () => {\r\n this.commandstats.resize()\r\n this.usedmemory.resize()\r\n })\r\n })\r\n },\r\n // 打开加载层\r\n openLoading() {\r\n this.$modal.loading(\"正在加载缓存监控数据,请稍候!\")\r\n }\r\n }\r\n}\r\n</script>\r\n"]}]} |