2

Graphite を使用してすべてのリソースの CTR を計算しようとしているので、次のようにデータを記録してみました。

  • ctr.resource_id.clicks
  • ctr.resource_id.reach

最初に、クエリを作成しました:

&target= averageSeries(divideSeries(ctr.176983011340976128.clicks,ctr.176983011340976128.reach),divideSeries(ctr.190348137012011008.clicks,ctr.190348137012011008.reach))

ここでの問題は、すべてのリソース ID をグラファイトに送信したくないということです。

&target= averageSeries(divideSeries(ctr.*.clicks,ctr.*.reach))

しかし、ええ、ドキュメントにあるように、 「ValueError:divideSeries 2 番目の引数は正確に 1 つのシリーズを参照する必要があります」。

私は別のアーキテクチャを試しました:

  • ctr.clicks.resource_id
  • ctr.reach.resource_id

でも同じ問題…</p>

私はグラファイトが初めてなので、誰かが解決策を持っていれば、それは素晴らしいことです!

編集:

関数groupByNodeを見て、それを使用しようとしました…</p>

4

1 に答える 1

1

データをdivideSeriesに渡すことができるように、事前にデータをシリーズに集約する必要があるようです。

カーボンの構成に関するドキュメントのAggregator-rules.confリファレンス:http://graphite.readthedocs.org/en/latest/config-carbon.html

したがって、1分あたりのクリックデータを合計するには、次の2つのルールが必要です。ctr.resource_all.clicks(60)= sumctr。*。clicksctr.resource_all.reach(60)=sumctr。*。reach

また、carbon-aggregator.pyデーモンを実行する必要があります /opt/graphite/bin/carbon-aggregator.py start

アグリゲーターデーモンのデフォルトポートは2023であるため、これまで使用していた2003ポートではなく、トラフィックを送信する必要があります。

于 2012-06-14T12:57:00.517 に答える