bug/sanitize-metrics #12
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user