🚧 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.ProcessRunner;
import dev.dinauer.monitoring.nodes.NodeStats; import dev.dinauer.monitoring.nodes.NodeStats;
import dev.dinauer.service.PodService;
import dev.dinauer.utils.ClientProvider; import dev.dinauer.utils.ClientProvider;
import io.fabric8.kubernetes.api.model.Node; import io.fabric8.kubernetes.api.model.Node;
import io.fabric8.kubernetes.api.model.Pod;
import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject; import jakarta.inject.Inject;
@ -18,6 +20,8 @@ public class TopNodesService
@Inject @Inject
ProcessRunner processRunner; ProcessRunner processRunner;
@Inject
PodService podService;
public List<NodeStats> findAll() public List<NodeStats> findAll()
{ {
@ -37,12 +41,26 @@ public class TopNodesService
Integer relativeCpu = extractInteger(parts[2]); Integer relativeCpu = extractInteger(parts[2]);
Integer absoluteMemory = extractMemory(parts[3]); Integer absoluteMemory = extractMemory(parts[3]);
Integer relativeMemory = extractInteger(parts[4]); 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; 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() private List<String> runTopNodesCommand()
{ {
String command = String.format("kubectl --kubeconfig=%s top nodes --no-headers", clientProvider.pathToKubeconfig()); 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; 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)
{ {
} }