Stats adjust

This commit is contained in:
Douglas Barone 2022-06-20 16:05:20 +00:00
parent cabb0a1f91
commit f0915c374d
3 changed files with 12 additions and 11 deletions

View File

@ -4,13 +4,13 @@ import { subDays } from 'date-fns'
const DAYS_TO_KEEP = 90 const DAYS_TO_KEEP = 90
async function generateStatsForAccessPoint(mac) { async function generateStatsForAccessPoint(accessPoint) {
const timestamp = new Date() const timestamp = new Date()
const dbStats = await prisma.wifiDevice.aggregate({ const dbStats = await prisma.wifiDevice.aggregate({
where: { where: {
accessPoint: { accessPoint: {
mac mac: accessPoint.mac
}, },
status: 'ONLINE' status: 'ONLINE'
}, },
@ -32,9 +32,6 @@ async function generateStatsForAccessPoint(mac) {
_min: { _min: {
signalStrength: true, signalStrength: true,
speed: true speed: true
},
_sum: {
usage: true
} }
}) })
@ -58,13 +55,13 @@ async function generateStatsForAccessPoint(mac) {
maxClientUptime: dbStats._max.uptime || 0, maxClientUptime: dbStats._max.uptime || 0,
avgUsage: Math.floor(dbStats._avg.usage, 0), avgUsage: Math.floor(dbStats._avg.usage, 0),
sumUsage: dbStats._sum.usage || 0 sumUsage: accessPoint.usage || 0
} }
await prisma.accessPointStats.create({ await prisma.accessPointStats.create({
data: { data: {
...stats, ...stats,
accessPoint: { connect: { mac } } accessPoint: { connect: { mac: accessPoint.mac } }
} }
}) })
} }
@ -74,7 +71,7 @@ export async function generateStatsForAllAccessPoints() {
const accessPoints = await prisma.accessPoint.findMany() const accessPoints = await prisma.accessPoint.findMany()
for (const accessPoint of accessPoints) { for (const accessPoint of accessPoints) {
await generateStatsForAccessPoint(accessPoint.mac) await generateStatsForAccessPoint(accessPoint)
} }
logSuccess({ logSuccess({

View File

@ -112,8 +112,10 @@ export default {
labels: this.stats.map(stat => new Date(stat.timestamp).getTime()), labels: this.stats.map(stat => new Date(stat.timestamp).getTime()),
datasets: [ datasets: [
{ {
label: 'Uso médio de banda', label: 'Uso de banda',
data: this.stats.map(stat => stat.avgUsage / 1024 / 1024), data: this.stats.map(
stat => (stat.avgUsage * stat.clients) / 1024 / 1024
),
borderColor: this.$vuetify.theme.isDark borderColor: this.$vuetify.theme.isDark
? this.$vuetify.theme.themes.dark.error ? this.$vuetify.theme.themes.dark.error
@ -129,6 +131,7 @@ export default {
tension, tension,
yAxisID: 'y1' yAxisID: 'y1'
}, },
{ {
label: 'Clientes conectados', label: 'Clientes conectados',
data: this.stats.map(stat => stat.clients), data: this.stats.map(stat => stat.clients),

View File

@ -105,7 +105,7 @@ export default {
notes notes
updatedAt updatedAt
stats(take: 120) { stats(take: 60) {
id id
timestamp timestamp
clients clients
@ -115,6 +115,7 @@ export default {
avgClientUptime avgClientUptime
maxClientUptime maxClientUptime
avgUsage avgUsage
sumUsage
} }
wifiDevices { wifiDevices {