From f0915c374dc8062b04369fe6221f2f56cb5d7aae Mon Sep 17 00:00:00 2001 From: Douglas Barone Date: Mon, 20 Jun 2022 16:05:20 +0000 Subject: [PATCH] Stats adjust --- server/src/lib/accessPointStats.js | 13 +++++-------- .../components/Charts/AccessPointClientsChart.vue | 7 +++++-- web/src/views/AccessPoints/clients.vue | 3 ++- 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/server/src/lib/accessPointStats.js b/server/src/lib/accessPointStats.js index c7a2c99..121e024 100644 --- a/server/src/lib/accessPointStats.js +++ b/server/src/lib/accessPointStats.js @@ -4,13 +4,13 @@ import { subDays } from 'date-fns' const DAYS_TO_KEEP = 90 -async function generateStatsForAccessPoint(mac) { +async function generateStatsForAccessPoint(accessPoint) { const timestamp = new Date() const dbStats = await prisma.wifiDevice.aggregate({ where: { accessPoint: { - mac + mac: accessPoint.mac }, status: 'ONLINE' }, @@ -32,9 +32,6 @@ async function generateStatsForAccessPoint(mac) { _min: { signalStrength: true, speed: true - }, - _sum: { - usage: true } }) @@ -58,13 +55,13 @@ async function generateStatsForAccessPoint(mac) { maxClientUptime: dbStats._max.uptime || 0, avgUsage: Math.floor(dbStats._avg.usage, 0), - sumUsage: dbStats._sum.usage || 0 + sumUsage: accessPoint.usage || 0 } await prisma.accessPointStats.create({ data: { ...stats, - accessPoint: { connect: { mac } } + accessPoint: { connect: { mac: accessPoint.mac } } } }) } @@ -74,7 +71,7 @@ export async function generateStatsForAllAccessPoints() { const accessPoints = await prisma.accessPoint.findMany() for (const accessPoint of accessPoints) { - await generateStatsForAccessPoint(accessPoint.mac) + await generateStatsForAccessPoint(accessPoint) } logSuccess({ diff --git a/web/src/components/Charts/AccessPointClientsChart.vue b/web/src/components/Charts/AccessPointClientsChart.vue index eb15837..719d643 100644 --- a/web/src/components/Charts/AccessPointClientsChart.vue +++ b/web/src/components/Charts/AccessPointClientsChart.vue @@ -112,8 +112,10 @@ export default { labels: this.stats.map(stat => new Date(stat.timestamp).getTime()), datasets: [ { - label: 'Uso médio de banda', - data: this.stats.map(stat => stat.avgUsage / 1024 / 1024), + label: 'Uso de banda', + data: this.stats.map( + stat => (stat.avgUsage * stat.clients) / 1024 / 1024 + ), borderColor: this.$vuetify.theme.isDark ? this.$vuetify.theme.themes.dark.error @@ -129,6 +131,7 @@ export default { tension, yAxisID: 'y1' }, + { label: 'Clientes conectados', data: this.stats.map(stat => stat.clients), diff --git a/web/src/views/AccessPoints/clients.vue b/web/src/views/AccessPoints/clients.vue index 79951e0..16ab5b9 100644 --- a/web/src/views/AccessPoints/clients.vue +++ b/web/src/views/AccessPoints/clients.vue @@ -105,7 +105,7 @@ export default { notes updatedAt - stats(take: 120) { + stats(take: 60) { id timestamp clients @@ -115,6 +115,7 @@ export default { avgClientUptime maxClientUptime avgUsage + sumUsage } wifiDevices {