kubernetes - Prometheus - 查询过去 24 小时内存在的 pod 数量

标签 kubernetes prometheus

我仍然在掌握 PromQL。我编写了这个查询,试图检测给定命名空间中过去 24 小时内存在的 kubernetes pod 的数量。
我的流程是:

  • 获取过滤到相关 namespace (任何气流的)的指标。
  • 在 24 小时内获取该指标。
  • 每个 pod 都会有很多相同创建时间的副本。

  • 使用increase()将每个 pod 的范围向量恢复为即时向量。该值将始终为 0,因为创建时间不会增加。
  • 现在我们每个 pod 有 1 个值,使用 count()看看有多少在那个时间范围内存在。
  • count(increase(kube_pod_created{namespace=~".*-airflow"}[1d]))
    
    任何了解普罗米修斯的人都可以告诉我这个逻辑是否遵循吗?由于它不是普通的数据库/等,我无法确定如何验证此查询。当扩展到一天时,它“看起来”可能会做正确的事情。

    最佳答案

    我建议替换 increase()count_over_time() , 自 increase可能会错过生命周期小于 2 倍抓取间隔的短生命周期 pod。以下查询应返回过去 24 小时内看到的 pod 总数:

    count(count_over_time(kube_pod_created{namespace=~".*airflow"}[24h]))
    

    关于kubernetes - Prometheus - 查询过去 24 小时内存在的 pod 数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63164774/

    相关文章:

    kubernetes - 为什么我需要将 ETCDCTL_API=3 放在 etcdctl 前面才能使 etcdctl 快照保存工作?

    kubernetes - 从Java/Node JS将容器镜像部署到kubernetes到Google Cloud

    docker - 节点导出器应该从主机还是容器运行?

    go - 如何区分不同服务的指标

    node.js - NodeJS API 服务失败如何重启?

    kubernetes - Openshift 4.2 OLM - 运算符(operator)依赖性

    kubernetes - 允许Pod通过网络策略与其他Pod通信

    kubernetes - 高可用性配置中的Kubernetes-Mesos

    docker - Prometheus不是在vm上运行,而是在本地Docker上运行

    azure - 如何将存储在 azure 表或事件中心中的指标公开给 prometheus?