🚧 Advanced stats

This commit is contained in:
andreas.dinauer 2025-11-01 20:36:51 +01:00
parent a417cb9238
commit 9425c0e213
3 changed files with 21 additions and 2 deletions

View File

@ -0,0 +1 @@
{"username":"admin","email":null,"roles":["admin"],"password":"$2a$10$lfghA6B2SUzivNp.NXkKD.um81qOFwzaNm.R/rCiAWSm3cmw5H72y","initial":true}

View File

@ -2,8 +2,10 @@ package dev.dinauer.monitoring;
import dev.dinauer.ProcessRunner;
import dev.dinauer.monitoring.nodes.NodeStats;
import dev.dinauer.service.PodService;
import dev.dinauer.utils.ClientProvider;
import io.fabric8.kubernetes.api.model.Node;
import io.fabric8.kubernetes.api.model.Pod;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
@ -18,6 +20,8 @@ public class TopNodesService
@Inject
ProcessRunner processRunner;
@Inject
PodService podService;
public List<NodeStats> findAll()
{
@ -37,12 +41,26 @@ public class TopNodesService
Integer relativeCpu = extractInteger(parts[2]);
Integer absoluteMemory = extractMemory(parts[3]);
Integer relativeMemory = extractInteger(parts[4]);
result.add(new NodeStats(node, absoluteCpu, relativeCpu, Integer.parseInt(node.getStatus().getAllocatable().get("cpu").getAmount()) * 1000, absoluteMemory, relativeMemory, extractMemory(node.getStatus().getAllocatable().get("memory").getAmount())));
result.add(new NodeStats(node, absoluteCpu, relativeCpu, Integer.parseInt(node.getStatus().getAllocatable().get("cpu").getAmount()) * 1000, absoluteMemory, relativeMemory, extractMemory(node.getStatus().getAllocatable().get("memory").getAmount()), countPods(node.getMetadata().getName())));
}
}
return result;
}
private int countPods(String nodeName)
{
List<Pod> pods = podService.findAll();
int count = 0;
for (Pod pod : pods)
{
if (pod.getSpec().getNodeName().equals(nodeName))
{
count++;
}
}
return count;
}
private List<String> runTopNodesCommand()
{
String command = String.format("kubectl --kubeconfig=%s top nodes --no-headers", clientProvider.pathToKubeconfig());

View File

@ -2,6 +2,6 @@ package dev.dinauer.monitoring.nodes;
import io.fabric8.kubernetes.api.model.Node;
public record NodeStats(Node node, Integer absoluteCpuUsage, Integer relativeCpuUsage, Integer totalCpu, Integer absoluteMemory, Integer relativeMemory, Integer totalMemory)
public record NodeStats(Node node, Integer absoluteCpuUsage, Integer relativeCpuUsage, Integer totalCpu, Integer absoluteMemory, Integer relativeMemory, Integer totalMemory, Integer runningPods)
{
}