diff --git a/.gitignore b/.gitignore index 8e2b702..940422c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ # Per-Use special Files and Directories /persistance/*.db +/persistance/*.db-shm +/persistance/*.db-wal /logs/*.log *.env /wwwroot/downloads/sqlite/*.sql diff --git a/Watcher/Controllers/MonitoringController.cs b/Watcher/Controllers/MonitoringController.cs index 9499a72..3357bf2 100644 --- a/Watcher/Controllers/MonitoringController.cs +++ b/Watcher/Controllers/MonitoringController.cs @@ -215,7 +215,7 @@ public class MonitoringController : Controller // Durchschnittliche Werte Berechnen - [HttpGet] + [HttpGet("median")] public async Task CalculateMedian(string Metric, int HoursToMonitor, int ServerId) { // Aktuelle Zeit - X Stunden = letzter Wert, der berücksichtigt werden soll @@ -230,4 +230,55 @@ public class MonitoringController : Controller return NotFound(); } + + [HttpGet("cpu-usage")] + public async Task GetCpuUsageData(int serverId) + { + var oneDayAgo = DateTime.UtcNow.AddDays(-1); + var data = await _context.Metrics + .Where(m => m.Timestamp >= oneDayAgo && m.ServerId == serverId) + .OrderBy(m => m.Timestamp) + .Select(m => new + { + label = m.Timestamp.ToUniversalTime().ToString("o"), + data = m.CPU_Load + }) + .ToListAsync(); + + return Ok(data); + } + + [HttpGet("ram-usage")] + public async Task GetRamUsageData(int serverId) + { + var oneDayAgo = DateTime.UtcNow.AddDays(-1); + var data = await _context.Metrics + .Where(m => m.Timestamp >= oneDayAgo && m.ServerId == serverId) + .OrderBy(m => m.Timestamp) + .Select(m => new + { + label = m.Timestamp.ToUniversalTime().ToString("o"), + data = m.RAM_Load + }) + .ToListAsync(); + + return Ok(data); + } + + [HttpGet("gpu-usage")] + public async Task GetGpuUsageData(int serverId) + { + var oneDayAgo = DateTime.UtcNow.AddDays(-1); + var data = await _context.Metrics + .Where(m => m.Timestamp >= oneDayAgo && m.ServerId == serverId) + .OrderBy(m => m.Timestamp) + .Select(m => new + { + label = m.Timestamp.ToUniversalTime().ToString("o"), + data = m.GPU_Load + }) + .ToListAsync(); + + return Ok(data); + } } \ No newline at end of file diff --git a/Watcher/Controllers/ServerController.cs b/Watcher/Controllers/ServerController.cs index 2208017..1968514 100644 --- a/Watcher/Controllers/ServerController.cs +++ b/Watcher/Controllers/ServerController.cs @@ -6,6 +6,7 @@ using Watcher.Models; using Watcher.ViewModels; [Authorize] +[Route("Server")] public class ServerController : Controller { private readonly AppDbContext _context; @@ -18,6 +19,7 @@ public class ServerController : Controller _logger = logger; } + [HttpGet("Overview")] public async Task Overview() { var vm = new ServerOverviewViewModel @@ -126,7 +128,7 @@ public class ServerController : Controller } // GET: Server/Details/5 - [HttpGet] + [HttpGet("Details")] public async Task Details(int id) { @@ -153,6 +155,7 @@ public class ServerController : Controller return View(vm); } + [HttpGet("ServerCardPartial")] public async Task ServerCardsPartial() { var servers = _context.Servers.ToList(); @@ -166,5 +169,12 @@ public class ServerController : Controller return PartialView("_ServerCard", servers); } + [HttpGet("ServerDetailPartial")] + public IActionResult ServerDetailPartial() + { + _logger.LogInformation("Server Detail Seite neu geladen"); + return PartialView("_ServerDetails"); + } + } diff --git a/Watcher/Views/Server/Details.cshtml b/Watcher/Views/Server/Details.cshtml index 024369d..2a8be81 100644 --- a/Watcher/Views/Server/Details.cshtml +++ b/Watcher/Views/Server/Details.cshtml @@ -4,31 +4,272 @@ }
- @await Html.PartialAsync("_ServerDetails") + +
+
+
+
+ Serverdetails: @Model.Name +
+ + + @(Model.IsOnline ? "Online" : "Offline") + +
+
+
+
ID
+
@Model.Id
+ +
IP-Adresse
+
@Model.IPAddress
+ +
Typ
+
@Model.Type
+ +
Erstellt am
+
@Model.CreatedAt.ToLocalTime().ToString("dd.MM.yyyy HH:mm")
+ +
Zuletzt gesehen
+
@Model.LastSeen.ToLocalTime().ToString("dd.MM.yyyy HH:mm")
+
+
+ +
+ +
+
CPU Last
+
+ +
+
+ +
+
RAM Last
+
+ +
+ + +
+
GPU Last
+
+ +
+ + + + @section Scripts { - - } \ No newline at end of file diff --git a/Watcher/Views/Server/_ServerDetails.cshtml b/Watcher/Views/Server/_ServerDetails.cshtml index 089c3e1..e69de29 100644 --- a/Watcher/Views/Server/_ServerDetails.cshtml +++ b/Watcher/Views/Server/_ServerDetails.cshtml @@ -1,67 +0,0 @@ -
-
-
-
- Serverdetails: @Model.Name -
- - - @(Model.IsOnline ? "Online" : "Offline") - -
-
-
-
ID
-
@Model.Id
- -
IP-Adresse
-
@Model.IPAddress
- -
Typ
-
@Model.Type
- -
Erstellt am
-
@Model.CreatedAt.ToLocalTime().ToString("dd.MM.yyyy HH:mm")
- -
Zuletzt gesehen
-
@Model.LastSeen.ToLocalTime().ToString("dd.MM.yyyy HH:mm")
-
-
- -
- - -
-
Uptime letzte 24h
-
- -
-
- -
-
CPU Last
-
- -
-
- -
-
RAM Last
-
- -
-
- \ No newline at end of file diff --git a/Watcher/Views/Server/overview.cshtml b/Watcher/Views/Server/overview.cshtml index ab41c7d..18b7c22 100644 --- a/Watcher/Views/Server/overview.cshtml +++ b/Watcher/Views/Server/overview.cshtml @@ -17,13 +17,10 @@ @section Scripts { - - -