Merge pull request 'bug/sanitize-metrics' (#12) from bug/sanitize-metrics into development
Reviewed-on: #12
This commit is contained in:
@@ -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_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; } // %
|
public double GPU_Vram_Usage { get; set; } // %
|
||||||
|
|
||||||
// RAM
|
// RAM
|
||||||
public double RAM_Size { get; set; } // GB
|
public double RAM_Size { get; set; } // Bytes
|
||||||
|
|
||||||
public double RAM_Load { get; set; } // %
|
public double RAM_Load { get; set; } // %
|
||||||
|
|
||||||
// Disks
|
// 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
|
// 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)
|
if (server != null)
|
||||||
{
|
{
|
||||||
|
// neues Metric-Objekt erstellen
|
||||||
var NewMetric = new Metric
|
var NewMetric = new Metric
|
||||||
{
|
{
|
||||||
Timestamp = DateTime.UtcNow,
|
Timestamp = DateTime.UtcNow,
|
||||||
ServerId = dto.ServerId,
|
ServerId = dto.ServerId,
|
||||||
CPU_Load = dto.CPU_Load,
|
CPU_Load = sanitizeLoadInput(dto.CPU_Load),
|
||||||
CPU_Temp = dto.CPU_Temp,
|
CPU_Temp = sanitizeDegreeInput(dto.CPU_Temp),
|
||||||
GPU_Load = dto.GPU_Load,
|
GPU_Load = sanitizeLoadInput(dto.GPU_Load),
|
||||||
GPU_Temp = dto.GPU_Temp,
|
GPU_Temp = sanitizeDegreeInput(dto.GPU_Temp),
|
||||||
GPU_Vram_Size = dto.GPU_Vram_Size,
|
GPU_Vram_Size = sanitizeByteInput(dto.GPU_Vram_Size),
|
||||||
GPU_Vram_Usage = dto.GPU_Vram_Usage,
|
GPU_Vram_Usage = sanitizeLoadInput(dto.GPU_Vram_Usage),
|
||||||
RAM_Load = dto.RAM_Load,
|
RAM_Load = sanitizeByteInput(dto.RAM_Load),
|
||||||
RAM_Size = dto.RAM_Size,
|
RAM_Size = sanitizeByteInput(dto.RAM_Size),
|
||||||
DISK_Size = dto.RAM_Size,
|
DISK_Size = sanitizeByteInput(dto.DISK_Size),
|
||||||
DISK_Usage = dto.DISK_Usage,
|
DISK_Usage = sanitizeByteInput(dto.DISK_Usage),
|
||||||
DISK_Temp = dto.DISK_Temp,
|
DISK_Temp = sanitizeDegreeInput(dto.DISK_Temp),
|
||||||
NET_In = dto.NET_In,
|
NET_In = sanitizeByteInput(dto.NET_In),
|
||||||
NET_Out = dto.NET_Out
|
NET_Out = sanitizeByteInput(dto.NET_Out)
|
||||||
};
|
};
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
// Metric Objekt in Datenbank einfügen
|
||||||
_context.Metrics.Add(NewMetric);
|
_context.Metrics.Add(NewMetric);
|
||||||
await _context.SaveChangesAsync();
|
await _context.SaveChangesAsync();
|
||||||
|
|
||||||
@@ -281,4 +283,32 @@ public class MonitoringController : Controller
|
|||||||
|
|
||||||
return Ok(data);
|
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