diff --git a/.gitignore b/.gitignore index 434ec66..f4d6f63 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,14 @@ # Ignore all .log files *.log - +*.dll +*.exe # Ignore the node_modules directory node_modules/ # Ignore all files in the temp directory -temp/ \ No newline at end of file +temp/ + +/bin/ +/obj/ +/publish/publish/ + diff --git a/Worker.cs b/Worker.cs index 15e1448..0a33236 100644 --- a/Worker.cs +++ b/Worker.cs @@ -66,12 +66,47 @@ namespace ResourceMonitorService }; } - private float GetCpuUsage() + private object GetCpuUsage() { var cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total"); cpuCounter.NextValue(); Thread.Sleep(1000); // Wait a second to get a valid reading - return cpuCounter.NextValue(); + + var usage = cpuCounter.NextValue(); + if (usage > 80) + { + // Get the current processes and sort them by CPU usage in descending order + var processes = Process.GetProcesses().OrderByDescending(p => p.TotalProcessorTime); + + // Create a new anonymous type containing the CPU usage, RAM usage, and the top 3 highest CPU-using processes + return new + { + Usage = usage, + Process1 = new + { + Name = processes.ElementAt(0).ProcessName, + TotalProcessorTime = processes.ElementAt(0).TotalProcessorTime, + WorkingSet64 = processes.ElementAt(0).WorkingSet64 / (1024 * 1024) // Convert to MB + }, + Process2 = new + { + Name = processes.ElementAt(1).ProcessName, + TotalProcessorTime = processes.ElementAt(1).TotalProcessorTime, + WorkingSet64 = processes.ElementAt(1).WorkingSet64 / (1024 * 1024) // Convert to MB + }, + Process3 = new + { + Name = processes.ElementAt(2).ProcessName, + TotalProcessorTime = processes.ElementAt(2).TotalProcessorTime, + WorkingSet64 = processes.ElementAt(2).WorkingSet64 / (1024 * 1024) // Convert to MB + } + }; + } + + return new + { + Usage = usage + }; } private float GetRamUsage() diff --git a/bin/Release/net9.0/ResourceMonitorService.dll b/bin/Release/net9.0/ResourceMonitorService.dll index eab7979..2c8da30 100644 Binary files a/bin/Release/net9.0/ResourceMonitorService.dll and b/bin/Release/net9.0/ResourceMonitorService.dll differ diff --git a/bin/Release/net9.0/ResourceMonitorService.exe b/bin/Release/net9.0/ResourceMonitorService.exe index 29a2510..e32a7f5 100644 Binary files a/bin/Release/net9.0/ResourceMonitorService.exe and b/bin/Release/net9.0/ResourceMonitorService.exe differ diff --git a/bin/Release/net9.0/ResourceMonitorService.pdb b/bin/Release/net9.0/ResourceMonitorService.pdb index 3a7deab..25a15ed 100644 Binary files a/bin/Release/net9.0/ResourceMonitorService.pdb and b/bin/Release/net9.0/ResourceMonitorService.pdb differ diff --git a/bin/Release/net9.0/publish/publish/appsettings.json b/bin/Release/net9.0/publish/publish/appsettings.json index f9a3e33..7d910a4 100644 --- a/bin/Release/net9.0/publish/publish/appsettings.json +++ b/bin/Release/net9.0/publish/publish/appsettings.json @@ -9,7 +9,7 @@ "Kestrel": { "Endpoints": { "Http": { - "Url": "http://localhost:5000" + "Url": "http://*:5000" } } } diff --git a/bin/Release/net9.0/publish/publish/publish/appsettings.json b/bin/Release/net9.0/publish/publish/publish/appsettings.json index f9a3e33..7d910a4 100644 --- a/bin/Release/net9.0/publish/publish/publish/appsettings.json +++ b/bin/Release/net9.0/publish/publish/publish/appsettings.json @@ -9,7 +9,7 @@ "Kestrel": { "Endpoints": { "Http": { - "Url": "http://localhost:5000" + "Url": "http://*:5000" } } } diff --git a/bin/Release/net9.0/publish/publish/publish/publish/publish/appsettings.json b/bin/Release/net9.0/publish/publish/publish/publish/publish/appsettings.json index 7d910a4..f9a3e33 100644 --- a/bin/Release/net9.0/publish/publish/publish/publish/publish/appsettings.json +++ b/bin/Release/net9.0/publish/publish/publish/publish/publish/appsettings.json @@ -9,7 +9,7 @@ "Kestrel": { "Endpoints": { "Http": { - "Url": "http://*:5000" + "Url": "http://localhost:5000" } } } diff --git a/bin/Release/net9.0/publish/publish/publish/publish/publish/publish/appsettings.json b/bin/Release/net9.0/publish/publish/publish/publish/publish/publish/appsettings.json index 7d910a4..f9a3e33 100644 --- a/bin/Release/net9.0/publish/publish/publish/publish/publish/publish/appsettings.json +++ b/bin/Release/net9.0/publish/publish/publish/publish/publish/publish/appsettings.json @@ -9,7 +9,7 @@ "Kestrel": { "Endpoints": { "Http": { - "Url": "http://*:5000" + "Url": "http://localhost:5000" } } } diff --git a/obj/Debug/net9.0/ResourceMonitorService.AssemblyInfo.cs b/obj/Debug/net9.0/ResourceMonitorService.AssemblyInfo.cs index a7121b5..bbf84d4 100644 --- a/obj/Debug/net9.0/ResourceMonitorService.AssemblyInfo.cs +++ b/obj/Debug/net9.0/ResourceMonitorService.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("ResourceMonitorService")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f16578d19a39c4688f17fdac49af6472a49fec57")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7dc90104512834ceb810324f20a2b5d12de354c0")] [assembly: System.Reflection.AssemblyProductAttribute("ResourceMonitorService")] [assembly: System.Reflection.AssemblyTitleAttribute("ResourceMonitorService")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Debug/net9.0/ResourceMonitorService.AssemblyInfoInputs.cache b/obj/Debug/net9.0/ResourceMonitorService.AssemblyInfoInputs.cache index e1ee7a9..0505f87 100644 --- a/obj/Debug/net9.0/ResourceMonitorService.AssemblyInfoInputs.cache +++ b/obj/Debug/net9.0/ResourceMonitorService.AssemblyInfoInputs.cache @@ -1 +1 @@ -50d6f72955ce0876a69442b6c335ff08ea368766fc97b2037cc37144294afbbe +1212cb7eab016db3876a66a85bc18562ffabead52c3b48120f48f729d68cf190 diff --git a/obj/Release/net9.0/PublishOutputs.c0c4d6191d.txt b/obj/Release/net9.0/PublishOutputs.c0c4d6191d.txt index 65740e6..92816bc 100644 --- a/obj/Release/net9.0/PublishOutputs.c0c4d6191d.txt +++ b/obj/Release/net9.0/PublishOutputs.c0c4d6191d.txt @@ -17,6 +17,14 @@ D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\ D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.json D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.Development.json D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.json +D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.Development.json +D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.json +D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.Development.json +D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.json +D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.deps.json +D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.runtimeconfig.json +D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.deps.json +D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.runtimeconfig.json D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.deps.json D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.runtimeconfig.json D:\din\dev\vmsvc\ResourceMonitorService\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.deps.json diff --git a/obj/Release/net9.0/ResourceMonitorService.AssemblyInfo.cs b/obj/Release/net9.0/ResourceMonitorService.AssemblyInfo.cs index 1506579..39f38d0 100644 --- a/obj/Release/net9.0/ResourceMonitorService.AssemblyInfo.cs +++ b/obj/Release/net9.0/ResourceMonitorService.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("ResourceMonitorService")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Release")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+f16578d19a39c4688f17fdac49af6472a49fec57")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+7dc90104512834ceb810324f20a2b5d12de354c0")] [assembly: System.Reflection.AssemblyProductAttribute("ResourceMonitorService")] [assembly: System.Reflection.AssemblyTitleAttribute("ResourceMonitorService")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/obj/Release/net9.0/ResourceMonitorService.AssemblyInfoInputs.cache b/obj/Release/net9.0/ResourceMonitorService.AssemblyInfoInputs.cache index 5cdf459..b21423b 100644 --- a/obj/Release/net9.0/ResourceMonitorService.AssemblyInfoInputs.cache +++ b/obj/Release/net9.0/ResourceMonitorService.AssemblyInfoInputs.cache @@ -1 +1 @@ -775fabb90a6c4c2ade72fe6bb97d7187c0bca0ffc636f7a7f1f46fc245002ac5 +608e465b7ba84317d117e2f91b1dd0cbc27eb989794e186fbb1d28e072618ae2 diff --git a/obj/Release/net9.0/ResourceMonitorService.csproj.FileListAbsolute.txt b/obj/Release/net9.0/ResourceMonitorService.csproj.FileListAbsolute.txt index 93e0b9e..84658c1 100644 --- a/obj/Release/net9.0/ResourceMonitorService.csproj.FileListAbsolute.txt +++ b/obj/Release/net9.0/ResourceMonitorService.csproj.FileListAbsolute.txt @@ -62,3 +62,11 @@ D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publi D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.json D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.deps.json D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.runtimeconfig.json +D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.Development.json +D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.json +D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.deps.json +D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.runtimeconfig.json +D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.Development.json +D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\appsettings.json +D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.deps.json +D:\din\dev\vmsvc\ResourceMonitorService\bin\Release\net9.0\publish\publish\publish\publish\publish\publish\publish\publish\publish\publish\ResourceMonitorService.runtimeconfig.json diff --git a/obj/Release/net9.0/ResourceMonitorService.dll b/obj/Release/net9.0/ResourceMonitorService.dll index eab7979..2c8da30 100644 Binary files a/obj/Release/net9.0/ResourceMonitorService.dll and b/obj/Release/net9.0/ResourceMonitorService.dll differ diff --git a/obj/Release/net9.0/ResourceMonitorService.pdb b/obj/Release/net9.0/ResourceMonitorService.pdb index 3a7deab..25a15ed 100644 Binary files a/obj/Release/net9.0/ResourceMonitorService.pdb and b/obj/Release/net9.0/ResourceMonitorService.pdb differ diff --git a/obj/Release/net9.0/apphost.exe b/obj/Release/net9.0/apphost.exe index 29a2510..e32a7f5 100644 Binary files a/obj/Release/net9.0/apphost.exe and b/obj/Release/net9.0/apphost.exe differ diff --git a/obj/Release/net9.0/ref/ResourceMonitorService.dll b/obj/Release/net9.0/ref/ResourceMonitorService.dll index 711e05e..3690821 100644 Binary files a/obj/Release/net9.0/ref/ResourceMonitorService.dll and b/obj/Release/net9.0/ref/ResourceMonitorService.dll differ diff --git a/obj/Release/net9.0/refint/ResourceMonitorService.dll b/obj/Release/net9.0/refint/ResourceMonitorService.dll index 711e05e..3690821 100644 Binary files a/obj/Release/net9.0/refint/ResourceMonitorService.dll and b/obj/Release/net9.0/refint/ResourceMonitorService.dll differ diff --git a/publish/ResourceMonitorService.dll b/publish/ResourceMonitorService.dll index eab7979..2c8da30 100644 Binary files a/publish/ResourceMonitorService.dll and b/publish/ResourceMonitorService.dll differ diff --git a/publish/ResourceMonitorService.exe b/publish/ResourceMonitorService.exe index 29a2510..e32a7f5 100644 Binary files a/publish/ResourceMonitorService.exe and b/publish/ResourceMonitorService.exe differ diff --git a/publish/ResourceMonitorService.pdb b/publish/ResourceMonitorService.pdb index 3a7deab..25a15ed 100644 Binary files a/publish/ResourceMonitorService.pdb and b/publish/ResourceMonitorService.pdb differ diff --git a/publish/configure_firewall.ps1 b/publish/configure_firewall.ps1 index 1e05455..b2ee377 100644 --- a/publish/configure_firewall.ps1 +++ b/publish/configure_firewall.ps1 @@ -1,10 +1,8 @@ # PowerShell script to create a new inbound rule in Windows Firewall - -# Define the port number $port = 5000 - -# Define the rule name $ruleName = "ResourceMonitorService" - -# Create a new inbound rule -New-NetFirewallRule -DisplayName $ruleName -Direction Inbound -Protocol TCP -LocalPort $port -Action Allow -Profile Any \ No newline at end of file +if (Get-NetFirewallRule -DisplayName $ruleName) { + Write-Host "Rule already exists, not creating a new one" +} else { + New-NetFirewallRule -DisplayName $ruleName -Direction Inbound -Protocol TCP -LocalPort $port -Action Allow -Profile Any +} diff --git a/publish/publish/publish/appsettings.json b/publish/publish/publish/appsettings.json index f9a3e33..7d910a4 100644 --- a/publish/publish/publish/appsettings.json +++ b/publish/publish/publish/appsettings.json @@ -9,7 +9,7 @@ "Kestrel": { "Endpoints": { "Http": { - "Url": "http://localhost:5000" + "Url": "http://*:5000" } } } diff --git a/publish/publish/publish/publish/appsettings.json b/publish/publish/publish/publish/appsettings.json index f9a3e33..7d910a4 100644 --- a/publish/publish/publish/publish/appsettings.json +++ b/publish/publish/publish/publish/appsettings.json @@ -9,7 +9,7 @@ "Kestrel": { "Endpoints": { "Http": { - "Url": "http://localhost:5000" + "Url": "http://*:5000" } } } diff --git a/publish/publish/publish/publish/publish/publish/appsettings.json b/publish/publish/publish/publish/publish/publish/appsettings.json index 7d910a4..f9a3e33 100644 --- a/publish/publish/publish/publish/publish/publish/appsettings.json +++ b/publish/publish/publish/publish/publish/publish/appsettings.json @@ -9,7 +9,7 @@ "Kestrel": { "Endpoints": { "Http": { - "Url": "http://*:5000" + "Url": "http://localhost:5000" } } } diff --git a/publish/publish/publish/publish/publish/publish/publish/appsettings.json b/publish/publish/publish/publish/publish/publish/publish/appsettings.json index 7d910a4..f9a3e33 100644 --- a/publish/publish/publish/publish/publish/publish/publish/appsettings.json +++ b/publish/publish/publish/publish/publish/publish/publish/appsettings.json @@ -9,7 +9,7 @@ "Kestrel": { "Endpoints": { "Http": { - "Url": "http://*:5000" + "Url": "http://localhost:5000" } } }