ロールアップ

すべてのメトリクスクエリは本質的に集計されます。しかし、クエリの最後に .rollup() 関数を追加することで、デフォルトをオーバーライドしたカスタムの時間集計を行うことができます。この関数を使用すると、次のような定義を行うことができます。

: Distribution メトリクスタイプには rollup の aggregator はありません。このメトリクスタイプは時間と空間の両方で集計されます 詳細はパーセンタイル付きのディストリビューション向け rollup についてのドキュメントを参照してください。

この関数には <AGGREGATOR> およびオプションの <INTERVAL> という 2 つのパラメーターがあり、.rollup(<AGGREGATOR>,<INTERVAL>) または .rollup(<AGGREGATOR>) の形で使用されます。

パラメーター説明
<AGGREGATOR>avgsumminmax、または count を指定することができ、与えられた時間間隔でどのようにデータポイントを集計するかを定義することができます。強制されるデフォルト: avg
<INTERVAL>表示するデータポイント間の間隔(秒)。設定は任意。

この 2 つは別々に使用することも、あるいは .rollup(sum,120) のように一度に使用することもできます。次の画像は、あるホストの 1 週間分の CPU 使用率を、.rollup() 関数を使わずに棒グラフで表示したものです。

smooth_1

次の棒グラフは、同じメトリクスを、.rollup(avg,86400) を使用して 1 日ごとにロールアップしたものです。

smooth_2

ロールアップの移動

関数説明
moving_rollupロールアップして最後の X 秒中のポイントを結合します。moving_rollup(<METRIC_NAME>, <INTERVAL> , <AGGREGATOR>)

moving_rollup() 関数をクエリに適用することで、「最後の X 秒」など最も直近の特定の時間範囲にあるポイントを結合することができます。.rollup() を使用した場合と同様、<AGGREGATOR> には sum/min/max/count/avg が入り、指定された時間間隔の中で収集されるデータポイントを定義します。

ロールアップ間隔: 強制またはカスタム

グラフ化する際、Datadog は 1 つのグラフのポイント数に制限を設けています。この制限を守るために、Datadog は avg メソッドを使用してデータポイントを自動的にロールアップし、あるメトリクスの時間間隔内のすべてのデータポイントの平均値を効果的に表示します。このデフォルトの時間間隔は、データをどのように視覚化するかによって異なります。これらのデフォルトの時間間隔を参照するには、次のチャートを参照してください。

タイムフレームrollup 間隔 (線グラフ)rollup 間隔 (棒グラフ)rollup 間隔 (API)
過去 1 時間20 秒1 分20 秒
過去 4 時間1 分2 分1 分
過去 1 日5 分20 分5分
過去 2 日10 分30 分10 分
過去 1 週間1 時間2 時間1 時間
先月2 時間12 時間4 時間

.rollup() 関数を作成して使用すると、時間集計のタイプ (avgminmaxcountsum) と rollup の時間間隔を指定できます。しかし、カスタム .rollup() 関数を適用することで Datadog の制限を超えて時間間隔が短くなる場合、時間集計のタイプは rollup 関数で指定したものが使われますが、時間間隔については Datadog による制限の方が優先されます。たとえば、1 か月分のメトリクスを .rollup(20) を使用してリクエストすると、決められたポイント数以上のデータを返さないようにするため、20 秒よりも長い rollup 間隔でデータが戻されます。

: COUNTRATE のタイプのメトリクスは、自動的に .as_count() のモディファイアー付きで画面に表示されます。これにより、sum を設定したロールアップ関数が実行され、補間が無効になります。この .as_count() はクエリの末尾に明示的に表示されます。

as_count

.as_count().as_rate() の使用方法について詳しくは、ブログ記事 StatsD メトリクスの視覚化を参照してください。また、これらの関数の影響について詳しくは、アプリ内モディファイアーに関するドキュメントを参照してください。

モニターでのロールアップ

通常は、モニタークエリでロールアップを使用することは避けるべきです。ロールアップ間隔とモニターの評価期間の整合性が取れなくなる可能性があるためです。ロールアップ間隔は、モニタークエリの開始や終了の時間ではなく、UNIX 時間に合わせて開始および終了します。そのため、ロールアップ間隔が短くなり、少量のサンプルデータだけでモニターが評価を行う(そしてトリガーする)可能性があります。これを避けるために、(少なくとも)設定されたロールアップの間隔だけモニターの評価を遅らせる必要があります。

その他の関数