16

カウンターデータをグラファイトに報告するために statsD を使用しています。メッセージを受け取るたびにティックを送信します。これは、なんらかの理由で statsD を再起動する必要がある場合を除いて、うまく機能します。その後、グラフに大きな穴が開いてしまいます。これは、メッセージを受信しなかった期間に statsD が 10 秒ごとに「0」を送信しなくなったためです。

さまざまなメッセージの種類とキューについて報告していますが、特定のキューのメッセージが長期間表示されないことがあります。

不足しているデータを指定したデフォルト値 (私の場合は 0) で「埋める」既存の方法はありますか?

statsD が 0 の送信を開始するように、特定のメトリックに対して「0」カウントを送信することを考えましたが、事前に報告するメトリックのセットを常に知っているわけではありません。

4

4 に答える 4

19

Graphite が提供する関数transformNullを確認してください。例えば

transformNull(stats.timers.deploys.all.duration.total.mean, 0)

これにより、null データを含むセクションが 0 にマップされます。

于 2013-06-28T03:45:41.723 に答える
12

グラファイトの「keepLastValue(requestContext, seriesList)」関数を使用して、欠落しているデータを処理できます。「[c]データにギャップ(「なし」値)が表示された場合、線を壊すのではなく、最後に受け取った値の線を続けます。」

于 2012-12-06T04:57:28.003 に答える
9

ビジュアル グラフをゼロで「塗りつぶす」だけの場合は、「グラフ オプション -> ライン モード -> Null をゼロとして描画」を参照してください。これにより、0 以外の値を設定することはできず、データを json または csv 形式で取得した場合に 0 が表示されることはありませんが、いくつかのグラフを表示したいだけの場合は、多くの場合、0 が必要になります。データが記録されないところまで伸びます。

Draw Null as Zero なし

Draw Null をゼロとして使用

于 2012-12-12T08:24:32.190 に答える
2

The solution to this problem is not to keep the last value or transform nulls. Implementing one of those options will only cause you to display incorrect data, and you will not be alerted when something is wrong.

You need to change your storage schema so that it stores the amount of data that you're sending, and no more.

If metrics are being sent every 5s and your storage schema says 1s, you will get five data points, four of which will be null.

Check out this doc: https://github.com/etsy/statsd/blob/master/docs/graphite.md

于 2016-05-13T18:22:32.503 に答える