🚧 Advanced stats
This commit is contained in:
parent
a417cb9238
commit
9425c0e213
@ -0,0 +1 @@
|
|||||||
|
{"username":"admin","email":null,"roles":["admin"],"password":"$2a$10$lfghA6B2SUzivNp.NXkKD.um81qOFwzaNm.R/rCiAWSm3cmw5H72y","initial":true}
|
||||||
@ -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());
|
||||||
|
|||||||
@ -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)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user