我的服务器向Graphite发送mem_total和mem_free指标,但我想在我的仪表板上显示mem_used 。 我目前正在通过这样做解决问题:
offset(scale(servers.foo.*.mem_free,-1),30823052)
其中30823052 k是总内存。
我想知道是否有一种方法可以利用石墨来为mem_total和mem_free计算mem_used ,这样我就可以避免在查询中硬编码内存总量。
我最近一直在和Grafana做一些testing,发现了一个部分的解决scheme,那就是:
A) servers.foo.server1.mem_total (mark invisible) B) servers.foo.server1.mem_free (mark invisible) C) diffSeries(#A, #B)
但是,这个解决scheme只能在没有通配符的情况下工作 – 而且我真的很希望能够使用通配符,而不必为每台服务器都做这种事情。
我正在寻找可用的function,而groupByNode似乎可能是我正在寻找的解决scheme的一部分,但我还没有想出一个方法来做我想要的东西呢。
你可以使用mapSeries和reduceSeries 。
reduceSeries(mapSeries(servers.foo.*.*,2),"diffSeries",3,"mem_total","mem_free")