don't send any systeminfo to clients

This commit is contained in:
Stanley Dimant
2022-08-05 12:48:26 +02:00
parent 95586549e5
commit 5adcb7421b

View File

@@ -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
};