🐛 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()); 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(); Node node = clientProvider.getClient().nodes().withName(name).get();
Integer absoluteCpu = extractInteger(parts[1]); Integer absoluteCpu = extractInteger(parts[1]);
Integer relativeCpu = extractInteger(parts[2]); Integer relativeCpu = extractInteger(parts[2]);
Integer absoluteMemory = extractMemory(parts[3]); Long absoluteMemory = extractMemory(parts[3]);
Integer relativeMemory = extractInteger(parts[4]); Integer relativeMemory = extractInteger(parts[4]);
Integer totalCpu = Integer.parseInt(node.getStatus().getAllocatable().get("cpu").getAmount()) * 1000; 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()); Integer totalPods = podsOnNodes.get(node.getMetadata().getName());
NodeDiskMetrics diskMetrics = nodeDiskMetrics.get(node.getMetadata().getName()); NodeDiskMetrics diskMetrics = nodeDiskMetrics.get(node.getMetadata().getName());
if (diskMetrics != null) if (diskMetrics != null)
@ -90,20 +90,20 @@ public class TopNodesService
return Integer.valueOf(input.replace("m", "").replace("%", "")); return Integer.valueOf(input.replace("m", "").replace("%", ""));
} }
private Integer extractMemory(String input) private Long extractMemory(String input)
{ {
if (input.contains("Ki")) if (input.contains("Ki"))
{ {
return Integer.parseInt(input.replace("Ki", "")); return Long.parseLong(input.replace("Ki", "")) * 1024L;
} }
if (input.contains("Mi")) if (input.contains("Mi"))
{ {
return Integer.parseInt(input.replace("Mi", "")) * 1024; return Long.parseLong(input.replace("Mi", "")) * 1024L * 1024L;
} }
if (input.contains("Gi")) 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; 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(); String nodeName = pod.getSpec().getNodeName();
if ("dev".equals(profile)) 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 ip = pod.getStatus().getPodIP();
String port = "8080"; String port = "8080";