groups: - name: kubernetes-cost-report.rules interval: 5m rules: - expr: "(\n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (kube_node_labels{job=\"kube-state-metrics\"}) \n * on (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_cost_all{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n)" record: zone_capacity_instance:spot_instance_cost:cost - expr: |- sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) ( zone_capacity_instance:spot_instance_cost:cost ) record: capacity_instance:spot_instance_cost:cost - expr: "(\n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (kube_node_labels{job=\"kube-state-metrics\"}) \n * on (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_cost_all{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n)" record: capacity_instance:on_demand_instance_cost:cost - expr: "(\n (\n (sum by(namespace, node, pod) (cluster:namespace:pod_memory:active:kube_pod_container_resource_requests) /1024/1024/1024) \n * on (node) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \ sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n )\n\n * ignoring(namespace, node, pod) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_mem_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n)" record: zone_capacity_instance_namespace_node_pod:pod_memory_requests_instance_mem_price:spot_pod_mem_requests_cost - expr: "(\n (\n (sum by(namespace, node, pod) (cluster:namespace:pod_memory:active:kube_pod_container_resource_requests) /1024/1024/1024) \n * on (node) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n )\n\n * ignoring(namespace, node, pod) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_mem_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n)" record: capacity_instance_namespace_node_pod:pod_memory_requests_instance_mem_price:on_demand_pod_mem_requests_cost - expr: "(\n (\n sum by(namespace, node, pod) (cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests) \n * on (node) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n \ )\n\n * ignoring(namespace, node, pod) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_cpu_price{label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n)" record: zone_capacity_instance_namespace_node_pod:pod_cpu_requests_instance_cpu_price:spot_pod_cpu_requests_cost - expr: "(\n (\n sum by(namespace, node, pod) (cluster:namespace:pod_cpu:active:kube_pod_container_resource_requests) \n * on (node) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \ sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n \ )\n\n * ignoring(namespace, node, pod) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_cpu_price{label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n)" record: capacity_instance_namespace_node_pod:pod_cpu_requests_instance_cpu_price:on_demand_pod_cpu_requests_cost - expr: "(\n (\n (sum by (namespace, node, pod) (container_memory_working_set_bytes{name!=\"\"}) /1024/1024/1024)\n * on (node) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \ sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n )\n\n * ignoring(namespace, node, pod) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_mem_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n)" record: zone_capacity_instance_namespace_node_pod:pod_memory_usage_instance_mem_price:spot_pod_mem_usage_cost - expr: "(\n (\n (sum by (namespace, node, pod) (container_memory_working_set_bytes{name!=\"\"}) /1024/1024/1024)\n * on (node) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n )\n\n * ignoring(namespace, node, pod) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_mem_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n)" record: capacity_instance_namespace_node_pod:pod_memory_usage_instance_mem_price:on_demand_pod_mem_usage_cost - expr: "(\n (\n sum by(namespace, node, pod) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate) \n * on (node) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n \ )\n\n * ignoring(namespace, node, pod) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_cpu_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n)" record: zone_capacity_instance_namespace_node_pod:pod_cpu_usage_instance_cpu_price:spot_pod_cpu_usage_cost - expr: "(\n (\n sum by(namespace, node, pod) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate) \n * on (node) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \ sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n \ )\n\n * ignoring(namespace, node, pod) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_cpu_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n)" record: capacity_instance_namespace_node_pod:pod_cpu_usage_instance_cpu_price:on_demand_pod_cpu_usage_cost - expr: "(\n (\n sum by (node, resource) (\n (\n kube_node_status_allocatable{job=\"kube-state-metrics\", resource=\"cpu\"}\n - on (node) group_left\n sum by (node) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate)\n \ )\n )\n\n * on (node) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \ \n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n )\n\n * ignoring (node, resource) group_left\n\n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_cpu_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n\n)" record: zone_capacity_instance_node_resource:kube_node_status_allocatable_idle_instance_cpu_price:spot_idle_cpu_cost - expr: "(\n (\n sum by (node, resource) (\n (\n kube_node_status_allocatable{job=\"kube-state-metrics\", resource=\"cpu\"}\n - on (node) group_left\n sum by (node) (node_namespace_pod_container:container_cpu_usage_seconds_total:sum_irate)\n \ )\n )\n\n * on (node) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n )\n\n * ignoring (node, resource) group_left\n\n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_cpu_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n\n)" record: capacity_instance_node_resource:kube_node_status_allocatable_idle_instance_cpu_price:on_demand_idle_cpu_cost - expr: "(\n (\n (\n sum by (node, resource) (\n kube_node_status_allocatable{job=\"kube-state-metrics\", resource=\"memory\"}\n - on (node) group_left\n sum by (node) (container_memory_working_set_bytes{job=\"kubelet\", name!=\"\"})\n )\n \ /1024/1024/1024\n )\n\n * on (node) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \ \n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n )\n\n * ignoring (node, resource) group_left\n\n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_mem_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n\n)" record: zone_capacity_instance_node_resource:kube_node_status_allocatable_idle_instance_mem_price:spot_idle_mem_cost - expr: "(\n (\n (\n sum by (node, resource) (\n kube_node_status_allocatable{job=\"kube-state-metrics\", resource=\"memory\"}\n - on (node) group_left\n sum by (node) (container_memory_working_set_bytes{job=\"kubelet\", name!=\"\"})\n )\n \ /1024/1024/1024\n )\n\n * on (node) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n )\n\n * ignoring (node, resource) group_left\n\n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_mem_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n\n)" record: capacity_instance_node_resource:kube_node_status_allocatable_idle_instance_mem_price:on_demand_idle_mem_cost - expr: "(\n (\n (\n sum by(node, resource) (\n ceil(kube_node_status_capacity{job=\"kube-state-metrics\", resource=\"cpu\"}) \n -\n kube_node_status_allocatable{job=\"kube-state-metrics\", resource=\"cpu\"}\n )\n ) \n \n * on (node) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \ \n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n )\n\n * ignoring(node, resource) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_cpu_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n)" record: zone_capacity_instance_node_resource:kube_node_status_shared_instance_cpu_price:spot_shared_cpu_cost - expr: "(\n (\n (\n sum by(node, resource) (\n kube_node_status_capacity{job=\"kube-state-metrics\", resource=\"cpu\"} \n -\n kube_node_status_allocatable{job=\"kube-state-metrics\", resource=\"cpu\"}\n )\n ) \n \n * on (node) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n )\n\n * ignoring(node, resource) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_cpu_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n)" record: capacity_instance_node_resource:kube_node_status_shared_instance_cpu_price:on_demand_shared_cpu_cost - expr: "(\n (\n (\n sum by(node, resource) (\n ceil(kube_node_status_capacity{job=\"kube-state-metrics\", resource=\"memory\"} /1024/1024/1024)\n -\n (kube_node_status_allocatable{job=\"kube-state-metrics\", resource=\"memory\"} /1024/1024/1024)\n )\n ) \n \n * on (node) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n \ )\n\n * ignoring(node, resource) group_left(label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_topology_kubernetes_io_zone, label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_mem_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"SPOT\"})\n)" record: zone_capacity_instance_node_resource:kube_node_status_shared_instance_mem_price:spot_shared_mem_cost - expr: "(\n (\n (\n sum by(node, resource) (\n ceil(kube_node_status_capacity{job=\"kube-state-metrics\", resource=\"memory\"} /1024/1024/1024)\n -\n (kube_node_status_allocatable{job=\"kube-state-metrics\", resource=\"memory\"} /1024/1024/1024)\n )\n )\n \n * on (node) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type)\n \ \n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type, node) (kube_node_labels{job=\"kube-state-metrics\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n \ )\n\n * ignoring(node, resource) group_left(label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) \n\n sum by (label_eks_amazonaws_com_capacity_type, label_beta_kubernetes_io_instance_type) (instance_mem_price{job=\"kubernetes-cost-report\", label_eks_amazonaws_com_capacity_type=\"ON_DEMAND\"})\n)" record: capacity_instance_node_resource:kube_node_status_shared_instance_mem_price:on_demand_shared_mem_cost