Prometheus 查询以获取整个集群的内存限制承诺

Prometheus query to get memory limit commitment for the entire cluster

我使用的是最新的 prometheus 2.21.0 和最新的 node-exporter

尝试运行查询并未找到数据点但是指标kube_pod_container_resource_limits_memory_bytesnode_memory_MemTotal_bytes都独立工作并且return数据

(sum(kube_pod_container_resource_limits_memory_bytes) / :node_memory_MemTotal_bytes:sum)*100

所以两个问题

  1. 我以前从未见过这样的语法 :node_memory_MemTotal_bytes:sum - 它是有效的 prometheus 查询吗?
  2. 如果语法正确,查询有什么问题?
  1. 这是普罗米修斯大陆广泛使用的约定。这意味着该指标不是直接从某些目标中提取的指标,而是记录规则的结果。此约定描述为 here.
  2. 如果分别查询左侧和右侧 return 数据,但在对它们执行算术运算后,您没有任何数据,那么这可能意味着它们上的标签不完全相同。分别执行它们并比较结果上的标签。假设 :node_memory_MemTotal_bytes:sum 执行 return 数据,那么您可能还必须在那里添加 sum 以删除那里的所有剩余标签