16

ユーザーがサイトに接続するたびに 1 つのメッセージを送信します。

この形式の場合:

"user_login 1 13xxxxxxx"  (key value timestamp)

私の問題は、グラファイトが毎分値「1」の線のみを含むグラフを表示することです。毎分 (6 から 60 の間) ランダムな数のメッセージを送信しますが、Graphite は値を表示するために最初 (または最後?) のメッセージに制限していると思います。

各メッセージの合計を毎分取得するにはどうすればよいですか?

4

8 に答える 8

11

Graphite UI ではなく、収集時にメトリックが集計されるように、炭素集計サービスを試すこともできます。集約ルールの設定については、http: //graphite.readthedocs.org/en/latest/config-carbon.html#aggregation-rules-confを参照してください。通常のカーボン コレクター ポートとは異なるポートで実行されているカーボン アグリゲーション サービス ポートにメトリクスを送信する必要があることに注意してください。

于 2012-06-30T10:40:50.643 に答える
7

グラファイト サーバーで statsd または statsite を実行することに興味があるかもしれません。そのソフトウェアは、構成可能な期間ごとにすべての統計を集計し、結果をグラファイトに書き出します。

github.com/etsy/statsd (node.js 内) と github.com/kiip/statsite (python clone) を見てください。Etsy の statsd には、使用方法に関するいくつかのコード例が含まれています。

于 2011-10-28T22:01:32.247 に答える
3

1分を超えて合計する場合は、sumSeries target = sumSeries(graphite.counterName)またはsummary関数を使用します

于 2011-09-10T15:49:00.420 に答える
3

Jari は正しいです。carbon-aggregator はこのために特別に作成されました。

次のように、aggregation-rules.conf で sum 関数を必ず使用してください。

bpu.<cluster>.<account>.<metric>_sum (1) = sum bpu.<cluster>.<account>.<metric>_sum
于 2013-01-11T13:53:23.937 に答える
1

シリーズで累積関数を使用します。

デフォルトでは、グラフが描画され、ピクセル単位のグラフの幅がグラフ化されるデータポイントの数よりも小さい場合、Graphite は各ピクセルの値を平均化します。Cumulative() 関数は、連結関数を平均から合計に変更します。

于 2012-03-10T09:47:29.320 に答える
1

これは、メトリックごとにデータが集計される方法でもあります。デフォルトでは、期待したものではない平均値になります。StatsD を使用したメトリクスの追跡 (etsy 経由) および Graphiteも参照してください。グラファイト グラフは、すべてのデータをグラフ化していないようです

于 2012-03-06T16:48:59.640 に答える
1

デフォルトでは、グラファイトは受信メトリックに対して送信された最後の値のみを最小保持粒度 (平均値ではなく) で保存します。集計が必要な場合、一般的な解決策はstatsdを使用することです。

ただし、カーボンアグリゲーターを使用することもできます。メトリクスをアグリゲーター ライン ポートに送信していることを確認してから、aggregation-rules.conf を次のようなルールで更新します。

user_login (10) = sum user_login$

注: これは、最小保持期間がまだ 10 秒 (デフォルト) であることを前提としており、storage-schemas.conf を調べることで確認できます

より長い説明については、以下を参照してください:グラファイトの Carbon アグリゲーターが同じ仕事をできるのに、なぜ statsd を使用するのですか?

于 2015-05-01T13:50:35.217 に答える