PromQL 以图表形式每小时创建的 Kubernetes POD 数量
Posted
技术标签:
【中文标题】PromQL 以图表形式每小时创建的 Kubernetes POD 数量【英文标题】:PromQL to graph number of Kubernetes PODs created per Hour 【发布时间】:2020-01-26 17:55:53 【问题描述】:我正在使用 Kubernetes 与 kube-state-metrics 和 Prometheus/grafana 来绘制 Kubernetes 集群的各种指标。
现在我想用图表显示随着时间的推移每小时创建了多少新 POD。
指标 kube_pod_created
包含作为值的 Creation-Timestamp,但由于每个时隙中都有一个值,因此以下查询还为未创建新 POD 的时隙返回结果 >0:
count(rate(kube_pod_created[1h])) by(namespace)
我可以在某种标准中使用 Value 来仅计算 Value 是否在“当前”时间段内吗?
【问题讨论】:
【参考方案1】:过去一小时内创建的 POD
count ( (time() - sum by (pod) (kube_pod_created)) < 60*60 )
【讨论】:
【参考方案2】:根据文档,https://prometheus.io/docs/prometheus/latest/querying/functions/ rate()
只能与计数器一起使用。我建议您使用 changes()
函数,因为在创建 pod 的情况下,创建时间值应该在您的时间范围内发生变化,并且总和也可能比计数好。
变化()
对于每个输入时间序列,changes(v range-vector) 将其值在提供的时间范围内更改的次数作为即时向量返回。
sum(changes(kube_pod_created[1h])) by(namespace)
【讨论】:
已经尝试过了,但是由于创建 pod 的 Value (Timestamp) 不会随着时间而改变,所以它不会产生预期的结果 @powo,你的意思是没有改变?我想建议你使用时间函数和减法,但是现在......创建 pod 时,kube_pod_created 的值不会改变?如果不是创作时间,那又是什么呢?以上是关于PromQL 以图表形式每小时创建的 Kubernetes POD 数量的主要内容,如果未能解决你的问题,请参考以下文章
在 Prometheus PromQL 中获取最后一小时的平均费率