サーバーはmem_total
およびmem_free
メトリックをGraphiteに送信しますが、ダッシュボードにmem_used
を表示したいと思います。私は現在、次のようにして問題を解決しています:
offset(scale(servers.foo.*.mem_free,-1),30823052)
ここで、30823052
kは合計メモリです。
グラファイトを活用してmem_used
とmem_total
からmem_free
を計算し、合計メモリ量をハードコーディングする必要がないようにする方法があるかどうか疑問に思っています。私のクエリでは?
私は最近Grafanaでいくつかのテストを行っており、部分的な解決策を見つけました。それは次のとおりです。
A) servers.foo.server1.mem_total (mark invisible)
B) servers.foo.server1.mem_free (mark invisible)
C) diffSeries(#A, #B)
ただし、このソリューションはワイルドカードなしでのみ機能します。サーバーごとにこのようなことを行うのではなく、ワイルドカードを使用できるようにしたいと考えています。
利用可能な関数を調べていましたが、groupByNodeは私が探しているソリューションの一部である可能性があるようですが、それを使用して目的を達成する方法をまだ理解していません。
mapSeries
および reduceSeries
を使用してこれを行うことができます。
reduceSeries(mapSeries(servers.foo.*.*,2),"diffSeries",3,"mem_total","mem_free")