use goroutine to record cpu usage

This commit is contained in:
0xJacky 2022-02-22 00:17:59 +08:00
parent 16a3d02d9c
commit 897c3cddcd
7 changed files with 134 additions and 63 deletions

View file

@ -0,0 +1,9 @@
import http from '@/lib/http'
const analytic = {
cpu_usage() {
return http.get('/analytic/cpu')
}
}
export default analytic

View file

@ -3,11 +3,13 @@ import config from './config'
import auth from './auth'
import user from './user'
import install from './install'
import analytic from './analytic'
export default {
domain,
config,
auth,
user,
install
install,
analytic
}

View file

@ -10,10 +10,16 @@
<span>%</span>
</template>
</a-statistic>
<p><translate>Uptime</translate> {{ uptime }}</p>
<p><translate>Load Averages: </translate> 1min:{{ loadavg?.load1?.toFixed(2) }} |
<p>
<translate>Uptime</translate>
{{ uptime }}
</p>
<p>
<translate>Load Averages:</translate>
1min:{{ loadavg?.load1?.toFixed(2) }} |
5min:{{ loadavg?.load5?.toFixed(2) }} |
15min:{{ loadavg?.load15?.toFixed(2) }}</p>
15min:{{ loadavg?.load15?.toFixed(2) }}
</p>
<line-chart :chart-data="cpu_analytic" :options="cpu_analytic.options" :height="150"/>
</a-col>
<a-col :lg="6" :sm="8" :xs="12" class="chart_dashboard">
@ -120,11 +126,10 @@ export default {
+ btoa(this.$store.state.user.token))
this.websocket.onmessage = this.wsOnMessage
this.websocket.onopen = this.wsOpen
const time = new Date()
for (let i = 200; i > 0; i--) {
this.cpu_analytic.datasets[0].data.push({x: time-i*1000, y: 0})
this.cpu_analytic.datasets[1].data.push({x: time-i*1000, y: 0})
}
this.$api.analytic.cpu_usage().then(r => {
this.cpu_analytic.datasets[0].data.concat(r.user)
this.cpu_analytic.datasets[1].data.concat(r.total)
})
},
destroyed() {
this.websocket.close()