如何统计PromQL中每天按命名空间启动了多少个pod?

问题描述 投票:0回答:1

我正在尝试回答以下问题:每天每个命名空间启动/计划了多少个 pod 。我还没有找到任何有用的计数器类型指标来计算,只是相关的仪表,如

kube_pod_status_scheduled_time

到目前为止,我能想到的最好的事情是:

topk(3,
  sum_over_time((
    delta((
      count by (namespace) (
        count by (pod, namespace) (kube_pod_status_scheduled_time{namespace=~".*-tenant"})
      )
    )[5m:]) > 0
  )[1d:])
)

但首先,这似乎太重/效率低下,无法在请求超时之前完成,其次我非常怀疑它实际上是否正确。

请问您有什么想法吗?

kubernetes openshift prometheus promql
1个回答
0
投票

尝试以下查询:

count(
  last_over_time(kube_pod_created[24h]) > time()-24*3600
) by (namespace)

它应该返回过去 24 小时内创建的每个命名空间 pod 的数量。

请参阅有关

kube_pod_created
指标的文档此处

需要

last_over_time
函数来考虑在过去 24 小时内创建和停止的短期 Pod。

需要与

time()
-
24*3600
进行比较,以便过滤掉早于 24 小时前启动的 Pod。

count
函数仅计算所选时间序列的数量。

© www.soinside.com 2019 - 2024. All rights reserved.