diff --git a/MareSynchronosServer/MareSynchronosServer/SystemInfoService.cs b/MareSynchronosServer/MareSynchronosServer/SystemInfoService.cs index 1ab1b88..bce65d7 100644 --- a/MareSynchronosServer/MareSynchronosServer/SystemInfoService.cs +++ b/MareSynchronosServer/MareSynchronosServer/SystemInfoService.cs @@ -1,7 +1,4 @@ using System; -using System.Diagnostics; -using System.Linq; -using System.Net.NetworkInformation; using System.Threading; using System.Threading.Tasks; using MareSynchronos.API; @@ -30,73 +27,20 @@ public class SystemInfoService : IHostedService, IDisposable { _logger.LogInformation("System Info Service started"); - _timer = new Timer(CalculateCpuUsage, null, TimeSpan.Zero, TimeSpan.FromSeconds(5)); + _timer = new Timer(PushSystemInfo, null, TimeSpan.Zero, TimeSpan.FromSeconds(5)); return Task.CompletedTask; } - private void CalculateCpuUsage(object state) + private void PushSystemInfo(object state) { - var startTime = DateTime.UtcNow; - double startCpuUsage = 0; - foreach (var process in Process.GetProcesses()) - { - try - { - startCpuUsage += process.TotalProcessorTime.TotalMilliseconds; - } - catch { } - } - var networkOut = NetworkInterface.GetAllNetworkInterfaces().Sum(n => n.GetIPStatistics().BytesSent); - var networkIn = NetworkInterface.GetAllNetworkInterfaces().Sum(n => n.GetIPStatistics().BytesReceived); - var stopWatch = new Stopwatch(); - stopWatch.Start(); - - Thread.Sleep(TimeSpan.FromSeconds(5)); - - stopWatch.Stop(); - var endTime = DateTime.UtcNow; - double endCpuUsage = 0; - long ramUsage = 0; - foreach (var process in Process.GetProcesses()) - { - try - { - endCpuUsage += process.TotalProcessorTime.TotalMilliseconds; - ramUsage += process.WorkingSet64; - } - catch { } - } - var endNetworkOut = NetworkInterface.GetAllNetworkInterfaces().Sum(n => n.GetIPStatistics().BytesSent); - var endNetworkIn = NetworkInterface.GetAllNetworkInterfaces().Sum(n => n.GetIPStatistics().BytesReceived); - - var totalMsPassed = (endTime - startTime).TotalMilliseconds; - var totalSPassed = (endTime - startTime).TotalSeconds; - - var cpuUsedMs = (endCpuUsage - startCpuUsage); - var cpuUsageTotal = cpuUsedMs / (Environment.ProcessorCount * totalMsPassed); - var bytesSent = endNetworkOut - networkOut; - var bytesReceived = endNetworkIn - networkIn; - - - var usedRAM = Process.GetCurrentProcess().WorkingSet64 + Process.GetProcessesByName("sqlservr").FirstOrDefault()?.WorkingSet64 ?? 0; - - var cpuUsage = cpuUsageTotal * 100; - var totalNetworkOut = bytesSent / totalSPassed; - var totalNetworkIn = bytesReceived / totalSPassed; - - MareMetrics.NetworkIn.Set(totalNetworkIn); - MareMetrics.NetworkOut.Set(totalNetworkOut); - MareMetrics.CPUUsage.Set(cpuUsage); - MareMetrics.RAMUsage.Set(usedRAM); - SystemInfoDto = new SystemInfoDto() { CacheUsage = 0, - CpuUsage = cpuUsage, + CpuUsage = 0, RAMUsage = 0, - NetworkIn = totalNetworkIn, - NetworkOut = totalNetworkOut, + NetworkIn = 0, + NetworkOut = 0, OnlineUsers = (int)MareMetrics.AuthorizedConnections.Value, UploadedFiles = 0 };