🐛 Fix memory conversion bug

This commit is contained in:
Andreas Dinauer 2026-01-04 16:32:30 +01:00
parent 2a09bdddd2
commit 487dd72423
4 changed files with 9 additions and 32 deletions

View File

@ -94,27 +94,4 @@ public class DeploymentLogWebsocket
LOG.errorf("Error sending logs to frontend via websocket: %s", e.getMessage());
}
}
private List<KubernetesLog> toLog(List<String> logs, String podName)
{
List<KubernetesLog> result = new ArrayList<>();
for (String log : logs)
{
int indexFirstSpace = log.indexOf(" ");
if (indexFirstSpace != -1)
{
String timestampRaw = log.substring(0, indexFirstSpace);
try
{
String message = log.substring(indexFirstSpace + 1);
result.add(new KubernetesLog(LocalDateTime.parse(timestampRaw, DateTimeFormatter.ISO_DATE_TIME), message, podName));
}
catch (Exception e)
{
LOG.errorf("Error parsing log: %s", e.getMessage());
}
}
}
return result;
}
}

View File

@ -47,10 +47,10 @@ public class TopNodesService
Node node = clientProvider.getClient().nodes().withName(name).get();
Integer absoluteCpu = extractInteger(parts[1]);
Integer relativeCpu = extractInteger(parts[2]);
Integer absoluteMemory = extractMemory(parts[3]);
Long absoluteMemory = extractMemory(parts[3]);
Integer relativeMemory = extractInteger(parts[4]);
Integer totalCpu = Integer.parseInt(node.getStatus().getAllocatable().get("cpu").getAmount()) * 1000;
Integer totalMemory = extractMemory(node.getStatus().getAllocatable().get("memory").getAmount());
Long totalMemory = extractMemory(node.getStatus().getAllocatable().get("memory").getAmount());
Integer totalPods = podsOnNodes.get(node.getMetadata().getName());
NodeDiskMetrics diskMetrics = nodeDiskMetrics.get(node.getMetadata().getName());
if (diskMetrics != null)
@ -90,20 +90,20 @@ public class TopNodesService
return Integer.valueOf(input.replace("m", "").replace("%", ""));
}
private Integer extractMemory(String input)
private Long extractMemory(String input)
{
if (input.contains("Ki"))
{
return Integer.parseInt(input.replace("Ki", ""));
return Long.parseLong(input.replace("Ki", "")) * 1024L;
}
if (input.contains("Mi"))
{
return Integer.parseInt(input.replace("Mi", "")) * 1024;
return Long.parseLong(input.replace("Mi", "")) * 1024L * 1024L;
}
if (input.contains("Gi"))
{
return Integer.parseInt(input.replace("Gi", "")) * 1024 * 1024;
return Long.parseLong(input.replace("Gi", "")) * 1024L * 1024L * 1024L;
}
return Integer.parseInt(input);
return Long.parseLong(input);
}
}

View File

@ -1,5 +1,5 @@
package dev.dinauer.monitoring.nodes;
public record NodeMetrics(Integer absoluteCpuUsage, Integer relativeCpuUsage, Integer totalCpu, Integer absoluteMemory, Integer relativeMemory, Integer totalMemory, Integer runningPods, Integer relativeDiskUsage, Long totalDiskSpace)
public record NodeMetrics(Integer absoluteCpuUsage, Integer relativeCpuUsage, Integer totalCpu, Long absoluteMemory, Integer relativeMemory, Long totalMemory, Integer runningPods, Integer relativeDiskUsage, Long totalDiskSpace)
{
}

View File

@ -55,7 +55,7 @@ public class NodeDiskService
String nodeName = pod.getSpec().getNodeName();
if ("dev".equals(profile))
{
return Map.entry(nodeName, new NodeDiskMetrics(new Random().nextInt(80) + 10, 0L));
return Map.entry(nodeName, new NodeDiskMetrics(new Random().nextInt(80) + 10, 85_899_345_920L));
}
String ip = pod.getStatus().getPodIP();
String port = "8080";