我想从节点导出器获取时间序列向量node_memory_MemAvailable_bytes 。它在 RHEL7 上运行良好,但在 RHEL6 上不存在此数据,因为旧内核上的 /proc/meminfo 中不存在此数据。
所以没问题,Prometheus 让我可以通过它的规则来计算这个时间序列向量。
我想总结node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes。(这可能不准确,但在大多数情况下似乎很好)。
我在 Prometheus 主配置文件中创建了这样的字符串
rule_files:
- 'prometheus.rules.yml'
和这样的文件prometheus.rules.yml:
groups:
- name: node_memory_MemAvailable_bytes for RHEL6
rules:
- record: node_memory_MemAvailableRH6_bytes
expr: node_memory_MemFree_bytes + node_memory_Buffers_bytes + node_memory_Cached_bytes
labels:
sumof: FreeBuffersCached
并且出现了新的时间序列node_memory_MemAvailableRH6_bytes。
但是......它也出现在 RHEL7 主机上!
我找不到如何处理它。
是否可以仅在不存在node_memory_MemAvailable_bytes的情况下应用我的规则?
或者
仅当node_memory_MemAvailable_bytes不存在时,是否可以要求 Grafana 绘制node_memory_MemAvailableRH6_bytes图形?
PS/我不想在 Prometheus 规则中用 node_memory_MemAvailableRH6_bytes 重写 node_memory_MemAvailable_bytes,因为我的总和不准确。