1
0
mirror of https://github.com/RaidMax/IW4M-Admin.git synced 2025-06-25 06:30:21 -05:00

improve server clientcount/activity graph on server overview

This commit is contained in:
RaidMax
2022-03-29 16:42:53 -05:00
parent 3a0aee319e
commit d0670760fb
21 changed files with 5253 additions and 135 deletions

View File

@ -1028,12 +1028,19 @@ namespace IW4MAdmin
{
var maxItems = Math.Ceiling(appConfig.MaxClientHistoryTime.TotalMinutes /
appConfig.ServerDataCollectionInterval.TotalMinutes);
while ( ClientHistory.Count > maxItems)
while (ClientHistory.ClientCounts.Count > maxItems)
{
ClientHistory.Dequeue();
ClientHistory.ClientCounts.RemoveAt(0);
}
ClientHistory.Enqueue(new PlayerHistory(ClientNum));
ClientHistory.ClientCounts.Add(new ClientCountSnapshot
{
ClientCount = ClientNum,
ConnectionInterrupted = Throttled,
Time = DateTime.UtcNow,
Map = CurrentMap.Name
});
playerCountStart = DateTime.Now;
}

View File

@ -94,7 +94,8 @@ namespace IW4MAdmin.Application.Misc
PeriodBlock = (int) (DateTimeOffset.UtcNow - DateTimeOffset.UnixEpoch).TotalMinutes,
ServerId = await server.GetIdForServer(),
MapId = await GetOrCreateMap(server.CurrentMap.Name, (Reference.Game) server.GameName, token),
ClientCount = server.ClientNum
ClientCount = server.ClientNum,
ConnectionInterrupted = server.Throttled,
}));
return data;
@ -144,4 +145,4 @@ namespace IW4MAdmin.Application.Misc
context.SaveChanges();
}
}
}
}

View File

@ -135,7 +135,9 @@ namespace IW4MAdmin.Application.Misc
{
snapshot.ServerId,
snapshot.CapturedAt,
snapshot.ClientCount
snapshot.ClientCount,
snapshot.ConnectionInterrupted,
MapName = snapshot.Map.Name,
})
.OrderBy(snapshot => snapshot.CapturedAt)
.ToListAsync(cancellationToken);
@ -143,8 +145,8 @@ namespace IW4MAdmin.Application.Misc
return history.GroupBy(snapshot => snapshot.ServerId).Select(byServer => new ClientHistoryInfo
{
ServerId = byServer.Key,
ClientCounts = byServer.Select(snapshot => new ClientCountSnapshot()
{Time = snapshot.CapturedAt, ClientCount = snapshot.ClientCount}).ToList()
ClientCounts = byServer.Select(snapshot => new ClientCountSnapshot
{ Time = snapshot.CapturedAt, ClientCount = snapshot.ClientCount, ConnectionInterrupted = snapshot.ConnectionInterrupted ?? false, Map = snapshot.MapName}).ToList()
}).ToList();
}, nameof(_clientHistoryCache), TimeSpan.MaxValue);
@ -159,4 +161,4 @@ namespace IW4MAdmin.Application.Misc
}
}
}
}
}