0

普罗米修斯:v2.15.2 Kubernetes:v1.14.9

我有一个查询,它准确地显示了在设定时间段内随时间变化的最大值。但我想加入 kube_pod_container 资源中已经设置的指标。

我想知道设置的内容是否接近设置的百分比,显示百分比。

我还有其他使用相同度量结构的示例

jvm_memory_bytes_used{instance="url.instance.com.br"} / jvm_memory_bytes_max{area="heap"} * 100 > 80

但这一个不起作用。

max_over_time(sum(rate(container_cpu_usage_seconds_total{pod="pod-name-here",container_name!="POD", container_name!=""}[1m])) [1h:1s]) / kube_pod_container_resource_requests_cpu_cores * 100 < 70

那么第一个想法是创建一个查询来收集容器在短时间内的最大历史 cpu 使用率:

max_over_time(sum(rate(container_cpu_usage_seconds_total{pod="xpto-92838241",container_name!="POD", container_name!=""}[1m])) [1h:1s])

元素:{}值: 0.25781324101515

如果我们这样执行:

container_cpu_usage_seconds_total{pod="xpto-92838241",container_name!="POD", container_name!=""}

元素: container_cpu_usage_seconds_total{beta_kubernetes_io_arch="amd64",beta_kubernetes_io_instance_type="t3.small",beta_kubernetes_io_os="linux",cluster="teste.k8s.xpto",container="xpto",container_name="xpto",cpu="total ",failure_domain_beta_kubernetes_io_region="sa-east-1",failure_domain_beta_kubernetes_io_zone="sa-east-1c",generic="true",id="/kubepods/burstable/poda9999e9999e999e9-/99999e9999999e9",image="nginx",instance= "kubestate-dev.internal.xpto",job="kubernetes-cadvisor",kops_k8s_io_instancegroup="nodes",kubernetes_io_arch="amd64",kubernetes_io_hostname="ip-99-999-9-99.sa-east-1.compute .internal",kubernetes_io_os="linux",kubernetes_io_role="node",name="k8s_nginx_nginx-99999e9999999e9",namespace="nmpc",pod="pod-92838241",pod_name="pod-92838241",spot="false"}值: 22533.2

现在我们有了配置:

kube_pod_container_resource_requests_cpu_cores{pod="xpto-92838241"}

元素: kube_pod_container_resource_requests_cpu_cores{container="xpto",instance="kubestate-dev.internal.xpto",job="k8s-http",namespace="nmpc",node="ip-99-999-999-99.sa -east-1.compute.internal",pod="pod-92838241"}值: 1

好吧,在我看来,这将是使用这两个指标并使其接近这样的百分比:

max_over_time(sum(rate(container_cpu_usage_seconds_total{pod="xpto-dev-92838241",container_name!="POD", container_name!=""}[1m])) [1h:1s]) / kube_pod_container_resource_requests_cpu_cores * 100 < 70

元素: 无数据 值:

但是这两个指标不交互,我不明白为什么,也没有在文档中找到。

问候

4

2 回答 2

1

这是Prometheus Operators,以及有关CPU 聚合演练的文档和此博客。

我得到了矢量匹配问题的解决方案。

max_over_time(sum(rate(container_cpu_usage_seconds_total{pod="pod-name-here",container_name!="POD", container_name!=""}[1m])) [1h:1s]) / on(pod_name) group_left(container_name) kube_pod_container_resource_requests_cpu_cores{pod="pod-name-here"}

谢谢你们

于 2020-01-16T14:10:59.783 回答
0

正如您在此处看到的,仅在Kubernetes 1.16 cadvisor 度量标签中pod_namecontainer_namepod分别被和删除和替换container。当您使用Kubernetes 1.14时,您仍应使用pod_nameand container_name

让我知道它是否有帮助。

于 2020-01-15T17:50:06.933 回答