194 lines
18 KiB
YAML
194 lines
18 KiB
YAML
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
|