0

Web から情報を抽出するクラスのリストがあります。それぞれが何かを保存するたびに、グラファイトに異なるカウンターを送ります。したがって、それらのすべてが異なるメトリックです。

それらのうち、特定の条件を満たすものがいくつあるかをどうすれば知ることができますか??

たとえば、次のようにします。

movingAverage(summarize(groupByNode(counters.crawlers.*.saved, 2, "sumSeries), "1hour"), 24)

過去 24 時間のコンテンツ ダウンロードの平均です。ある瞬間「t」に、この値が 0 を超えるメトリクスがいくつあるかを知るにはどうすればよいですか?

4

2 に答える 2

1

レンダリング エンドポイントで、 を追加しformat=jsonます。これにより、JSON で対応するエポックを含むデータポイントが返されるため、簡単に解析できます。スクリプトが何も送信しなかったタイムスタンプは NULL になります。

[{
 "target": "carbon.agents.ip-10-0-0-228-a.metricsReceived",
 "datapoints": 
  [
    [912, 1383888170], 
    [789, 1383888180], 
    [800, 1383888190], 
    [null, 1383888200], 
    [503, 1383888210], 
    [899, 1383888220]
  ]
}]
于 2013-11-08T05:27:05.313 に答える
0

機能を使用できますcurrentAboveそれをチェックしてください。例えば:

currentAbove(stats.route.*.servertime.*, 5)

上記の例では、5 を超えるすべてのメトリック (シリーズ内) を取得します。


その後、返されたターゲットの数を数えることができます。Graphite は「バケット」を数える方法を提供していませんが、かなり簡単にキャプチャできるはずです。

たとえば、簡単なカウントを取得する方法 (curl を使用して grep にパイプし、"target" という単語をカウントします)。そのようです:

> curl -silent http://test.net/render?target=currentAbove(stats.cronica.dragnet.messages.*, 5)&format=json \
> | grep -Po "target" | grep -c "target"
于 2013-11-11T23:56:08.640 に答える