使用 PromQL 计算可用性

Availability calculation using PromQL

我要监控我的 Kubernetes 集群的可用性。 Prometheus 服务器抓取 kube-apiserver 指标并根据 kube-apiserver pods 可用性计算可用性百分比。有时 kube-apiserver pods 宕机,普罗米修斯服务器根本无法抓取,有时 pods 启动并且 运行 并且也在服务请求,但由于网络连接或任何其他原因Prometheus 服务器无法抓取指标。 有什么方法可以使用 PromQL 来忽略任何值吗?或者计算 Kubernetes 集群可用性的更好方法?

为了管理 'no data',我找到了 this 篇文章并帮助我编写查询:

clamp_max(sum by (cluster) (up{component="kube-apiserver"}),1) or on() vector(0)

使用 or on() vector(0) 到表达式的末尾。如果度量表达式没有 return 任何东西,它将 return 0。