don't send any systeminfo to clients
This commit is contained in:
		| @@ -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 | ||||
|         }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Stanley Dimant
					Stanley Dimant