当您有全部内存和可用内存时,如何显示已用内存的石墨graphics

我的服务器向Graphite发送mem_totalmem_free指标,但我想在我的仪表板上显示mem_used 。 我目前正在通过这样做解决问题:

 offset(scale(servers.foo.*.mem_free,-1),30823052) 

其中30823052 k是总内存。

我想知道是否有一种方法可以利用石墨来为mem_totalmem_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的一部分,但我还没有想出一个方法来做我想要的东西呢。

你可以使用mapSeriesreduceSeries

 reduceSeries(mapSeries(servers.foo.*.*,2),"diffSeries",3,"mem_total","mem_free")