バックエンドとしてグラファイト (0.9.10) を使用して statsd (git master ブランチの最新バージョン) を使用しています。
私の(Django)コードではstatsd.incr("signups")
、ユーザーがサインアップしたときに呼び出します。Graphite の Web インターフェースで、Graphite/stats/signups の下に 1 秒あたりのサインアップ数を示す美しいグラフが表示されるようになりました。Graphite/stats_counts/signups の下のグラフを見ると、サインアップの合計数が表示されると思いますが、10 秒間隔 (statsd の更新間隔だと思います) ごとのサインアップ数のようです。
私はconfigureしstorage-aggregation.conf
ましたが、おそらく何か間違っていましたか?また、カーボンを停止しました(stop
ではありませんが、停止するだけでは構成をリロードできないため、実際に停止しました)。/opt/graphite/storage/whisper/stats_counts
ディレクトリも削除しました。次に、カーボンデーモンを再起動しました。10 秒間隔ごとのサインアップ数は引き続き取得できます。:-(
これが私の構成です:
# /opt/graphite/conf/storage-aggregation.conf
[lower]
pattern = \.lower$
xFilesFactor = 0.1
aggregationMethod = min
[upper]
pattern = \.upper$
xFilesFactor = 0.1
aggregationMethod = max
[upper_90]
pattern = \.upper_90$
xFilesFactor = 0.1
aggregationMethod = max
[count]
pattern = \.count$
xFilesFactor = 0
aggregationMethod = sum
[count_ps]
pattern = \.count_ps$
xFilesFactor = 0
aggregationMethod = sum
[sum]
pattern = \.sum$
xFilesFactor = 0
aggregationMethod = sum
[sum_90]
pattern = \.sum_90$
xFilesFactor = 0
aggregationMethod = sum
[stats_counts]
pattern = ^stats_counts\.
xFilesFactor = 0
aggregationMethod = sum
[min]
pattern = \.min$
xFilesFactor = 0.1
aggregationMethod = min
[max]
pattern = \.max$
xFilesFactor = 0.1
aggregationMethod = max
[default_average]
pattern = .*
xFilesFactor = 0.5
aggregationMethod = average
この:
# /opt/graphite/conf/storage-schemas.conf
[stats]
priority = 110
pattern = ^stats.*
retentions = 10s:6h,1m:7d,10m:1y
私はすべてを正しく行い、Graphite は本来あるべきことを実際に行っていると思い始めています。質問は次のとおりです。
開始以来のサインアップの総数を引き出すように statsd とグラファイトを構成する適切な方法は何ですか?
Django コードを変更して、たまにユーザーの総数をカウントし、gauge
代わりに を使用するincr
こともできると思いますが、グラファイトは、受信したものをその場で合計するだけでなく、その場で合計できるようにする必要があるように感じます。データを集計するときだけです。
編集:
Graphite の Web インターフェースを使用して、Graphite コンポーザーで、integral
関数を基本的な「1 秒あたりのサインアップ」グラフ (Graphite/stats/signups 内) に適用し、目的のグラフ (つまり、サインアップの総数) を取得しました。これは累積グラフを取得する適切な方法ですか? 最初から完全な日付範囲を選択する必要があり、グラフにズームインできないか、ズームされた部分の積分を取得するだけなので、面倒です。:-(