9

次のような1回のリクエストで、グラファイトからさまざまなカウンターからデータをフェッチしたい:-

summarize(site.testing_server_2.triggers_unknown.count,'1hour','sum')&format=json

summarize(site.testing_server_2.requests_failed.count,'1hour','sum')&format=json

summarize(site.testing_server_2.core_network_bad_soap.count,'1hour','sum')&format=json

など.. 20以上。

しかし、私はフェッチしたくありません

summarize(site.testing_server_2.module_xyz_abc.count,'1hour','sum')&format=json

そのリクエストでは、どうすればそれを行うことができますか?

これは私が試したものです:

summarize(site.testing_server_2.*.count,'1hour','sum')&format=json&from=-24hour

「module_xyz_abc」のjsonデータも取得しますが、それは望ましくありません。

4

1 に答える 1

24

正規表現自体を使用することはできませんが、Graphite Render URL API 内で利用可能な、似たような (概念的にも形式的にも) マッチング手法を使用できます。ターゲットの「バケット」内 (つまりドット間) で「一致」させる方法はいくつかあります。

ターゲットマッチング

アスタリスク * 一致

アスタリスクは、 0 個以上の任意の文字に一致させるために使用できます。site.*.testバケット全体 ( ) またはバケット内( )を置き換えるために使用できますsite.w*t.test。次に例を示します。

site.testing_server_2.requests_*.count

これは、site.testing_server_2.requests_ failed .count、site.testing_server_2.requests_ success .count、site.testing_server_2.requests_ blah123 .count などと一致します。

文字範囲 [a-z0-9] 一致

文字範囲一致はsite.w[0-9]t.test、ターゲットのバケット内の単一文字 ( ) で一致するために使用され、範囲またはリストとして指定されます。例えば:

site.testing_server_[0-4].requests_failed.count

これは、site.testing_server_0.requests_failed.count、site.testing_server_1.requests_failed.count、site.testing_server_2.requests_failed.count などで一致します。

値リスト (グループ キャプチャ) {何とか、テスト、...} 一致

値リストの一致を使用して、ターゲットのバケットの指定された部分で、値のリスト内の任意のものを一致させることができます。

site.testing_server_2.{triggers_unknown,requests_failed,core_network_bad_soap}.count

これは、site.testing_server_2.triggers_unknown.count、site.testing_server_2.requests_failed.count、および site.testing_server_2.core_network_bad_soap.count と一致します。しかし他には何もないので、site.testing_server_2.module_xyz_abc.count は一致しません。

答え

バケットの値をすべて知らなければ、このアプローチ (おそらくマッチング オプションの組み合わせ) を外科的に使用するのは難しいため、 値リストの matchを使用することをお勧めします。これにより、1 回の (やや長い) リクエストですべての値を取得できるようになります。例(すべての値を含める必要があることに注意してください):

summarize(site.testing_server_2.{triggers_unknown,requests_failed,core_network_bad_soap}.count,'1hour','sum')&format=json&from=-24hour

詳細については、グラファイト パスとワイルドカードを参照してください。

于 2013-10-21T23:55:30.500 に答える