You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PromQL统计K8s集群中不同运行时长的节点数量?

Kubernetes节点运行时长分段统计方案

核心逻辑

节点运行时长 = 当前时间Unix时间戳 - 节点启动时间Unix时间戳(node_boot_time_seconds)。通过对比这个差值与目标时长(按秒计算),即可统计符合条件的节点数量。

分段统计PromQL语句

以下是针对不同时长阈值的查询语句,直接在Prometheus/Grafana中执行即可得到对应节点数:

运行时长范围PromQL查询语句
运行时长超过1天count(node_boot_time_seconds < time() - 86400)
运行时长超过2天count(node_boot_time_seconds < time() - 172800)
运行时长超过3天count(node_boot_time_seconds < time() - 259200)

关于offset用法的说明

你之前尝试的sum(kube_node_info offset 1d)逻辑有误:offset是用来偏移查询的时间窗口(比如查询1天前的节点信息快照),而非统计节点的运行时长。这种方式无法得到"运行时长超过N天"的节点数,因为它只能反映过去某一时刻的节点状态,和节点持续运行的时长无关。

额外提示

  • 确保集群中所有节点已部署node_exporter,且node_boot_time_seconds指标正常采集
  • 若需按自然日(而非连续秒数)统计,可结合time()的日期函数调整,但秒数偏移的方式更通用、直观

内容的提问来源于stack exchange,提问作者Rodrigo Mantoani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:20:45