我想创建一个Grafana仪表板,显示按Linux伙伴块大小分组的可用内存。 node_exporter从内核收集buddyinfo:
node_buddyinfo_blocks{node="0",size="0",zone="Normal"} 2474
node_buddyinfo_blocks{node="0",size="1",zone="Normal"} 2934
node_buddyinfo_blocks{node="0",size="2",zone="Normal"} 2743
node_buddyinfo_blocks{node="0",size="3",zone="Normal"} 1191
node_buddyinfo_blocks{node="0",size="4",zone="Normal"} 811
node_buddyinfo_blocks{node="0",size="5",zone="Normal"} 289
node_buddyinfo_blocks{node="0",size="6",zone="Normal"} 127
node_buddyinfo_blocks{node="0",size="7",zone="Normal"} 67
node_buddyinfo_blocks{node="0",size="8",zone="Normal"} 28
node_buddyinfo_blocks{node="0",size="9",zone="Normal"} 39
node_buddyinfo_blocks{node="0",size="10",zone="Normal"} 43474
不是显示空闲伙伴块的数量,而是需要通过将块计数(度量值)乘以块大小(从大小标签得出)来将块计数转换为字节大小: / p>
blocks * 2 ^ size * PAGESIZE
对于该计算,我喜欢使用标签size
的值并编写如下内容:
sum by (size) (node_buddyinfo_blocks) * (2 ^ size)
有没有办法在普罗米修斯实现该查询?
作为解决方法,可以为每个好友大小对十个查询进行硬编码。