Skip to main content

devops_armory/monitoring/gke/ram/
calculated.rs

1use super::inactive_file::{
2    mem_inactive_file_cgroup1,
3    mem_inactive_file_cgroup2
4};
5
6use super::usage::{
7    mem_usage_in_bytes_cgroup1,
8    mem_usage_in_bytes_cgroup2
9};
10
11/// RAM usage for specific pod in CGROUP2
12/// Token, GKE endpoint, namespace, pod name and RAM requested need to be provided
13pub async fn mem_calculated_cgroup2(
14    token: String,
15    gke_cluster_endpoint: String,
16    gke_cluster_namespace: String,
17    gke_pod_name: String,
18    ram: f64
19) -> Result<f64, std::io::Error> {
20
21    //let mem_inactive_file = mem_inactive_file_cgroup2(
22    //    token.clone(),
23    //    gke_cluster_endpoint.clone(),
24    //    gke_cluster_namespace.clone(),
25    //    gke_pod_name.clone()
26    //).await.unwrap();
27
28    let mem_usage_in_bytes = mem_usage_in_bytes_cgroup2(
29        token.clone(),
30        gke_cluster_endpoint.clone(),
31        gke_cluster_namespace.clone(),
32        gke_pod_name.clone()
33    ).await.unwrap();
34
35    loop {
36        //let mem_usage: f64 = (mem_usage_in_bytes - mem_inactive_file) / 1024.0 / 1024.0;
37        let ram_usage_cgroup2 = (mem_usage_in_bytes / 1024.0 / 1024.0) * 1000.0 / ram;
38
39        return Ok(ram_usage_cgroup2);
40    }
41
42}
43
44/// RAM usage for specific pod in CGROUP1
45/// Token, GKE endpoint, namespace, pod name and RAM requested need to be provided
46pub async fn mem_calculated_cgroup1(
47    token: String,
48    gke_cluster_endpoint: String,
49    gke_cluster_namespace: String,
50    gke_pod_name: String,
51    ram: f64
52) -> Result<f64, std::io::Error> {
53
54    //let mem_inactive_file = mem_inactive_file_cgroup1(
55    //    token.clone(),
56    //    gke_cluster_endpoint.clone(),
57    //    gke_cluster_namespace.clone(),
58    //    gke_pod_name.clone()
59    //).await.unwrap();
60
61    let mem_usage_in_bytes = mem_usage_in_bytes_cgroup1(
62        token.clone(),
63        gke_cluster_endpoint.clone(),
64        gke_cluster_namespace.clone(),
65        gke_pod_name.clone()
66    ).await.unwrap();
67
68    loop {
69        //let mem_usage: f64 = ((mem_usage_in_bytes - mem_inactive_file) / 1024.0 / 1024.0) / ram;
70        let ram_usage_cgroup1 = (mem_usage_in_bytes / 1024.0 / 1024.0) * 1000.0 / ram;
71
72        return Ok(ram_usage_cgroup1);
73    }
74
75}