了解用于内存空闲的普罗米修斯查询(节点导出器)

Posted

技术标签:

【中文标题】了解用于内存空闲的普罗米修斯查询(节点导出器)【英文标题】:Understanding a prometheus query for memory free (node-exporter) 【发布时间】:2021-12-24 15:18:57 【问题描述】:

谁能帮我理解来自 prometheus 的查询以及来自 node-exporter 的数据?

我从社区获取了一个查询,它是以下内容 - 请注意完整查询前面的“1 -”。这是我得到的查询。

(1 - (node_memory_MemAvailable_bytesnode_type=~"mining" / (node_memory_MemTotal_bytesnode_type=~"mining")))* 100 > 75

我不明白为什么会有“1-”。此特定查询现在返回 2 个结果。

我像这样删除了“1-”

(node_memory_MemAvailable_bytesnode_type=~"mining" / (node_memory_MemTotal_bytesnode_type=~"mining"))* 100 > 75

现在查询返回 4 个结果。

我有点困惑哪个是正确的,为什么“1-”会在查询之前。

这是显示prometheus查询结果的截图

谁能帮忙或解释一下,也许我遗漏了什么。

【问题讨论】:

【参考方案1】:

正确的是第一个(带“1-”),“数学”解释如下。

我们有:

MemUsed = MemTotal - MemAvailable

所以:

% MemUsed = ((MemTotal - MemAvailble) / MemTotal) * 100

简化我们有:

% MemUsed = (MemTotal / MemTotal - MemAvailable / MemTotal) * 100

最后:

% MemUsed = (1 - MemAvailable / MemTotal) * 100

【讨论】:

现在说得通了。谢谢。

以上是关于了解用于内存空闲的普罗米修斯查询(节点导出器)的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JMX 导出器将 JMX 指标从 Kafka 消费者推送到普罗米修斯

kubelet 指标未出现在普罗米修斯中

为什么我们需要在普罗米修斯进行服务发现?

普罗米修斯prometheus

未完成的节点导出器盒的Prometheus错误在哪里?

普罗米修斯上的多个目标