217 lines
5.4 KiB
Java
217 lines
5.4 KiB
Java
![]() |
<template>
|
|||
|
<div style="width: 100%;margin-top: 1rem;background-color: #ffffff">
|
|||
|
<a-row :gutter="8">
|
|||
|
<a-col :span="12">
|
|||
|
<apexchart ref="memoryInfo" type=area height=350 :options="memory.chartOptions" :series="memory.series" />
|
|||
|
</a-col>
|
|||
|
<a-col :span="12">
|
|||
|
<apexchart ref="keySize" type=area height=350 :options="key.chartOptions" :series="key.series" />
|
|||
|
</a-col>
|
|||
|
</a-row>
|
|||
|
<a-row :gutter="8">
|
|||
|
<a-divider orientation="left">Redis详细信息</a-divider>
|
|||
|
<table style="border-bottom: 1px solid #f1f1f1;">
|
|||
|
<tr v-for="(info, index) in redisInfo" :key="index" style="border-top: 1px solid #f1f1f1;">
|
|||
|
<td style="padding: .7rem 1rem">{{info.key}}</td>
|
|||
|
<td style="padding: .7rem 1rem">{{info.description}}</td>
|
|||
|
<td style="padding: .7rem 1rem">{{info.value}}</td>
|
|||
|
</tr>
|
|||
|
</table>
|
|||
|
</a-row>
|
|||
|
</div>
|
|||
|
</template>
|
|||
|
<script>
|
|||
|
import axios from 'axios'
|
|||
|
import moment from 'moment'
|
|||
|
import {getAction} from '@/api/manage'
|
|||
|
|
|||
|
export default {
|
|||
|
name: 'RedisInfo',
|
|||
|
data () {
|
|||
|
return {
|
|||
|
loading: true,
|
|||
|
memory: {
|
|||
|
series: [],
|
|||
|
chartOptions: {
|
|||
|
chart: {
|
|||
|
animations: {
|
|||
|
enabled: true,
|
|||
|
easing: 'linear',
|
|||
|
dynamicAnimation: {
|
|||
|
speed: 3000
|
|||
|
}
|
|||
|
},
|
|||
|
toolbar: {
|
|||
|
show: false
|
|||
|
},
|
|||
|
zoom: {
|
|||
|
enabled: false
|
|||
|
}
|
|||
|
},
|
|||
|
dataLabels: {
|
|||
|
enabled: false
|
|||
|
},
|
|||
|
stroke: {
|
|||
|
curve: 'smooth'
|
|||
|
},
|
|||
|
title: {
|
|||
|
text: 'Redis内存实时占用情况(kb)',
|
|||
|
align: 'left'
|
|||
|
},
|
|||
|
markers: {
|
|||
|
size: 0
|
|||
|
},
|
|||
|
xaxis: {
|
|||
|
},
|
|||
|
yaxis: {},
|
|||
|
legend: {
|
|||
|
show: false
|
|||
|
}
|
|||
|
},
|
|||
|
data: [],
|
|||
|
xdata: []
|
|||
|
},
|
|||
|
key: {
|
|||
|
series: [],
|
|||
|
chartOptions: {
|
|||
|
chart: {
|
|||
|
animations: {
|
|||
|
enabled: true,
|
|||
|
easing: 'linear',
|
|||
|
dynamicAnimation: {
|
|||
|
speed: 3000
|
|||
|
}
|
|||
|
},
|
|||
|
toolbar: {
|
|||
|
show: false
|
|||
|
},
|
|||
|
zoom: {
|
|||
|
enabled: false
|
|||
|
}
|
|||
|
},
|
|||
|
dataLabels: {
|
|||
|
enabled: false
|
|||
|
},
|
|||
|
colors: ['#f5564e'],
|
|||
|
stroke: {
|
|||
|
curve: 'smooth'
|
|||
|
},
|
|||
|
title: {
|
|||
|
text: 'Redis key实时数量(个)',
|
|||
|
align: 'left'
|
|||
|
},
|
|||
|
markers: {
|
|||
|
size: 0
|
|||
|
},
|
|||
|
xaxis: {
|
|||
|
},
|
|||
|
yaxis: {},
|
|||
|
legend: {
|
|||
|
show: false
|
|||
|
}
|
|||
|
},
|
|||
|
data: [],
|
|||
|
xdata: []
|
|||
|
},
|
|||
|
redisInfo: [],
|
|||
|
timer: null
|
|||
|
}
|
|||
|
},
|
|||
|
beforeDestroy () {
|
|||
|
if (this.timer) {
|
|||
|
clearInterval(this.timer)
|
|||
|
}
|
|||
|
},
|
|||
|
mounted () {
|
|||
|
let minMemory = 1e10
|
|||
|
let minSize = 1e10
|
|||
|
let maxMemory = -1e10
|
|||
|
let maxSize = -1e10
|
|||
|
this.timer = setInterval(() => {
|
|||
|
if (this.$route.path.indexOf('redis') !== -1) {
|
|||
|
axios.all([
|
|||
|
getAction('redis/keysSize'),
|
|||
|
getAction('redis/memoryInfo')
|
|||
|
]).then((r) => {
|
|||
|
console.log(r)
|
|||
|
let currentMemory = r[1].used_memory / 1000
|
|||
|
let currentSize = r[0].dbSize
|
|||
|
if (currentMemory < minMemory) {
|
|||
|
minMemory = currentMemory
|
|||
|
}
|
|||
|
if (currentMemory > maxMemory) {
|
|||
|
maxMemory = currentMemory
|
|||
|
}
|
|||
|
if (currentSize < minSize) {
|
|||
|
minSize = currentSize
|
|||
|
}
|
|||
|
if (currentSize > maxSize) {
|
|||
|
maxSize = currentSize
|
|||
|
}
|
|||
|
let time = moment().format('hh:mm:ss')
|
|||
|
this.memory.data.push(currentMemory)
|
|||
|
this.memory.xdata.push(time)
|
|||
|
this.key.data.push(currentSize)
|
|||
|
this.key.xdata.push(time)
|
|||
|
if (this.memory.data.length >= 6) {
|
|||
|
this.memory.data.shift()
|
|||
|
this.memory.xdata.shift()
|
|||
|
}
|
|||
|
if (this.key.data.length >= 6) {
|
|||
|
this.key.data.shift()
|
|||
|
this.key.xdata.shift()
|
|||
|
}
|
|||
|
this.$refs.memoryInfo.updateSeries([
|
|||
|
{
|
|||
|
name: '内存(kb)',
|
|||
|
data: this.memory.data.slice()
|
|||
|
}
|
|||
|
])
|
|||
|
this.$refs.memoryInfo.updateOptions({
|
|||
|
xaxis: {
|
|||
|
categories: this.memory.xdata.slice()
|
|||
|
},
|
|||
|
yaxis: {
|
|||
|
min: minMemory,
|
|||
|
max: maxMemory
|
|||
|
}
|
|||
|
}, true, true)
|
|||
|
this.$refs.keySize.updateSeries([
|
|||
|
{
|
|||
|
name: 'key数量',
|
|||
|
data: this.key.data.slice()
|
|||
|
}
|
|||
|
])
|
|||
|
this.$refs.keySize.updateOptions({
|
|||
|
xaxis: {
|
|||
|
categories: this.key.xdata.slice()
|
|||
|
},
|
|||
|
yaxis: {
|
|||
|
min: minSize - 2,
|
|||
|
max: maxSize + 2
|
|||
|
}
|
|||
|
}, true, true)
|
|||
|
if (this.loading) {
|
|||
|
this.loading = false
|
|||
|
}
|
|||
|
}).catch((r) => {
|
|||
|
console.error(r)
|
|||
|
this.$message.error('获取Redis信息失败')
|
|||
|
if (this.timer) {
|
|||
|
clearInterval(this.timer)
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
}, 3000)
|
|||
|
getAction('redis/info').then((r) => {
|
|||
|
console.log('redis/info')
|
|||
|
console.log(r)
|
|||
|
this.redisInfo = r.result
|
|||
|
})
|
|||
|
}
|
|||
|
}
|
|||
|
</script>
|
|||
|
<style>
|
|||
|
|
|||
|
</style>
|