diff --git a/.readthedocs.yaml b/.readthedocs.yaml deleted file mode 100644 index c4b4ce2..0000000 --- a/.readthedocs.yaml +++ /dev/null @@ -1,23 +0,0 @@ -# Read the Docs configuration file -# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details - -# Required -version: 2 - -# Set the OS, Python version, and other tools you might need -build: - os: ubuntu-24.04 - tools: - python: "3.13" - -# Build documentation in the "docs/" directory with Sphinx -sphinx: - configuration: docs/conf.py - -# Optionally, but recommended, -# declare the Python requirements required to build your documentation -# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html -# python: -# install: -# - requirements: docs/requirements.txt - \ No newline at end of file diff --git a/Watcher/Controllers/MonitoringController.cs b/Watcher/Controllers/MonitoringController.cs index 3357bf2..ca18c92 100644 --- a/Watcher/Controllers/MonitoringController.cs +++ b/Watcher/Controllers/MonitoringController.cs @@ -55,26 +55,26 @@ public class MetricDto public double GPU_Temp { get; set; } // deg C - public double GPU_Vram_Size { get; set; } // GB + public double GPU_Vram_Size { get; set; } // Bytes public double GPU_Vram_Usage { get; set; } // % // RAM - public double RAM_Size { get; set; } // GB + public double RAM_Size { get; set; } // Bytes public double RAM_Load { get; set; } // % // Disks - public double DISK_Size { get; set; } // GB + public double DISK_Size { get; set; } // Bytes - public double DISK_Usage { get; set; } // % + public double DISK_Usage { get; set; } // Bytes - public double DISK_Temp { get; set; } // deg C + public double DISK_Temp { get; set; } // deg C (if available) // Network - public double NET_In { get; set; } // Bit + public double NET_In { get; set; } // Bytes/s - public double NET_Out { get; set; } // Bit + public double NET_Out { get; set; } // Bytes/s } @@ -173,26 +173,28 @@ public class MonitoringController : Controller if (server != null) { + // neues Metric-Objekt erstellen var NewMetric = new Metric { Timestamp = DateTime.UtcNow, ServerId = dto.ServerId, - CPU_Load = dto.CPU_Load, - CPU_Temp = dto.CPU_Temp, - GPU_Load = dto.GPU_Load, - GPU_Temp = dto.GPU_Temp, - GPU_Vram_Size = dto.GPU_Vram_Size, - GPU_Vram_Usage = dto.GPU_Vram_Usage, - RAM_Load = dto.RAM_Load, - RAM_Size = dto.RAM_Size, - DISK_Size = dto.RAM_Size, - DISK_Usage = dto.DISK_Usage, - DISK_Temp = dto.DISK_Temp, - NET_In = dto.NET_In, - NET_Out = dto.NET_Out + CPU_Load = sanitizeLoadInput(dto.CPU_Load), + CPU_Temp = sanitizeDegreeInput(dto.CPU_Temp), + GPU_Load = sanitizeLoadInput(dto.GPU_Load), + GPU_Temp = sanitizeDegreeInput(dto.GPU_Temp), + GPU_Vram_Size = sanitizeByteInput(dto.GPU_Vram_Size), + GPU_Vram_Usage = sanitizeLoadInput(dto.GPU_Vram_Usage), + RAM_Load = sanitizeByteInput(dto.RAM_Load), + RAM_Size = sanitizeByteInput(dto.RAM_Size), + DISK_Size = sanitizeByteInput(dto.DISK_Size), + DISK_Usage = sanitizeByteInput(dto.DISK_Usage), + DISK_Temp = sanitizeDegreeInput(dto.DISK_Temp), + NET_In = sanitizeByteInput(dto.NET_In), + NET_Out = sanitizeByteInput(dto.NET_Out) }; try { + // Metric Objekt in Datenbank einfügen _context.Metrics.Add(NewMetric); await _context.SaveChangesAsync(); @@ -281,4 +283,32 @@ public class MonitoringController : Controller return Ok(data); } + + // Metric Input Byte zu Gigabyte umwandeln + public static double sanitizeByteInput(double metric_input) + { + // *10^-9 um auf Gigabyte zu kommen + double sanitizedMetric = metric_input * Math.Pow(10, -9); + + // Auf 2 Nachkommastellen runden + Math.Round(sanitizedMetric, 2); + + return sanitizedMetric; + } + + // Degree Input auf zwei Nachkommastellen runden + public static double sanitizeDegreeInput(double metric_input) + { + Math.Round(metric_input, 2); + + return metric_input; + } + + // Load Input auf zwei Nachkommastellen runden + public static double sanitizeLoadInput(double metric_input) + { + Math.Round(metric_input, 2); + + return metric_input; + } } \ No newline at end of file