私はgrafanaで遊んでおり、1つのアプリケーションサーバーからのデータを、それを除く他のすべてのサーバーの平均と比較するパネルを作成したいと考えています。何かのようなもの:
apps.machine1.someMetric
averageSeries(apps.*.not(machine1).someMetric)
それはできますか?どうやって?
SeriesListをフィルタリングしたいようですが、「grep」関数を包括的に使用するか、「exclude」関数のみを使用して行います。
exclude(apps.machine*.someMetric,"machine1")
そしてそれをaverageSeriesに渡します
averageSeries(exclude(apps.machine*.someMetric,"machine1"))
これらの関数の詳細については、こちらをご覧ください。 http://graphite.readthedocs.io/en/latest/functions.html#graphite.render.functions.exclude
ワイルドカードパスに関する Graphite URL APIのドキュメントセクションを読んだ後 「1つを除くすべて」のターゲットクエリはないと思います。ただし、マシン数が少ない場合は、除外したマシンを除くすべてのマシンをクエリで一覧表示できます。
apps.machine1.someMetric
averageSeries(apps.{machine2,machine3,machine4,machine5}.someMetric)
または、文字範囲を使用します。
apps.machine1.someMetric
averageSeries(apps.machine[2-5].someMetric)