【问题标题】:Get average time a pod stays in a pending state获取 pod 处于挂起状态的平均时间
【发布时间】:2019-12-22 08:11:46
【问题描述】:

我正在尝试使用 prometheus 计算 Pod 在 grafana 中处于挂起状态的平均时间。我可以生成一个图表来获取一段时间内处于挂起状态的 pod 的数量,使用这个查询

sum(kube_pod_status_phase{phase="Pending"})

但是,我真的很想获得过去 X 小时内 pod 处于此状态的平均时间值。我该怎么做?

【问题讨论】:

    标签: kubernetes prometheus grafana


    【解决方案1】:

    PromQL 提供aggregation functions over time

    您在表达式中指定range of time;对于前 X 小时,它将是:

    avg_over_time(kube_pod_status_phase{phase="Pending"}[Xh])
    

    【讨论】:

      【解决方案2】:

      指标 kube_pod_status_phase{phase="Pending"} 只会给你二进制值,即 0/1。 如果 pod 处于挂起状态,则为 1,否则为 1。 此外,数据每 30 秒更新一次。 因此,要查找过去 X 小时内待处理的总时间,您可以执行类似的操作。

      sum_over_time(kube_pod_status_phase{phase="Running"}[Xh]) * X * 30
      

      为了更好的可视化,你可以在 grafana 中使用 table。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-12-29
        • 1970-01-01
        • 1970-01-01
        • 2021-09-15
        • 2021-05-07
        • 2017-04-07
        • 2015-12-15
        • 1970-01-01
        相关资源
        最近更新 更多