Prometheus 查询以获取整个集群的内存限制承诺
Prometheus query to get memory limit commitment for the entire cluster
我使用的是最新的 prometheus 2.21.0 和最新的 node-exporter
尝试运行查询并未找到数据点但是指标kube_pod_container_resource_limits_memory_bytes
和node_memory_MemTotal_bytes
都独立工作并且return数据
(sum(kube_pod_container_resource_limits_memory_bytes) / :node_memory_MemTotal_bytes:sum)*100
所以两个问题
- 我以前从未见过这样的语法
:node_memory_MemTotal_bytes:sum
- 它是有效的 prometheus 查询吗?
- 如果语法正确,查询有什么问题?
- 这是普罗米修斯大陆广泛使用的约定。这意味着该指标不是直接从某些目标中提取的指标,而是记录规则的结果。此约定描述为 here.
- 如果分别查询左侧和右侧 return 数据,但在对它们执行算术运算后,您没有任何数据,那么这可能意味着它们上的标签不完全相同。分别执行它们并比较结果上的标签。假设
:node_memory_MemTotal_bytes:sum
执行 return 数据,那么您可能还必须在那里添加 sum
以删除那里的所有剩余标签
我使用的是最新的 prometheus 2.21.0 和最新的 node-exporter
尝试运行查询并未找到数据点但是指标kube_pod_container_resource_limits_memory_bytes
和node_memory_MemTotal_bytes
都独立工作并且return数据
(sum(kube_pod_container_resource_limits_memory_bytes) / :node_memory_MemTotal_bytes:sum)*100
所以两个问题
- 我以前从未见过这样的语法
:node_memory_MemTotal_bytes:sum
- 它是有效的 prometheus 查询吗? - 如果语法正确,查询有什么问题?
- 这是普罗米修斯大陆广泛使用的约定。这意味着该指标不是直接从某些目标中提取的指标,而是记录规则的结果。此约定描述为 here.
- 如果分别查询左侧和右侧 return 数据,但在对它们执行算术运算后,您没有任何数据,那么这可能意味着它们上的标签不完全相同。分别执行它们并比较结果上的标签。假设
:node_memory_MemTotal_bytes:sum
执行 return 数据,那么您可能还必须在那里添加sum
以删除那里的所有剩余标签