NRQLを使用すると、 buckets
関数を使用して特定の範囲をカバーするバケットにクエリ結果を分割できます。
FACET buckets()
関数を使用すると、ヒストグラムや度数分布の作成など、指定した範囲に基づいてデータをバケットにグループ化および分類できます。 count()
や sum()
などの集計関数と組み合わせて使用すると、さまざまな範囲にわたるデータの分布を分析できます。
以下にいくつかの使用例を示します。
- 応答タイムの分析:
FACET buckets()
を使用して応答タイムを範囲 (たとえば、0 ~ 100 ミリ秒、100 ~ 200 ミリ秒、200 ~ 300 ミリ秒) にグループ化し、各範囲内のカウントまたは平均応答時間を計算できます。 これにより、応答タイムの分布を理解し、パフォーマンスの問題を特定できます。 - リクエスト サイズの調査: リクエスト サイズに
FACET buckets()
を使用すると、リクエストのサイズをさまざまなバケット (0 ~ 1 KB、1 ~ 5 KB、5 ~ 10 KB など) に分類し、各バケットに含まれるリクエストの頻度を分析できます。 これは、パターンを特定し、リソース割り当てを最適化するのに役立ちます。 - エラー率を監視: エラー コードまたはエラー率に
FACET buckets()
を使用して、それらを特定の範囲にグループ化できます。 たとえば、さまざまな HTTP エラー コード (400、500 など) やエラー率の範囲 (0 ~ 1%、1 ~ 5% など) に応じたバケットを作成できます。 これにより、エラーの分布を追跡し、注意が必要な領域を特定できます。 - ユーザー エンゲージメントの追跡: セッション期間やページビューなど、ユーザー エンゲージメントに関連するメトリクスがある場合は、
FACET buckets()
を使用してそれらを時間間隔にグループ化できます。 これにより、さまざまな時間範囲にわたってユーザーがアプリケーションまたは Web サイトにどのように関与しているかを分析できます。
バケット化されたNRQLクエリの作成
バケット化された結果を返すには、NRQL クエリでFACET buckets()
句を使用します。 バケット化されたクエリは次の構造になっています。
SELECT FUNCTION(ATTRIBUTE) FROM DATA_TYPE FACET buckets(ATTRIBUTE, CEILING_VALUE, NUMBER_OF_BUCKETS)
New Relic データベースに数値として保存されている任意の属性で、バケット化された NRQL クエリを使用できます。
バケットクエリの例
バケット クエリを作成するには、次の手順を実行します。
- 属性の
SELECT
ステートメントで NRQL ステートメントを作成します。たとえば、SELECT average(duration)
です。 buckets()
をファセットとするFACET
句を追加します。 たとえば、buckets(duration, 40, 10)
。SELECT
ステートメントの属性とは異なる属性をバケット化することもできます。 たとえば、データベース呼び出しの平均時間を表示するには:buckets(databaseCallCount, 40, 10)
。
次のクエリは、10 個のバケットにわたる特定のページ パスの平均継続時間を計算します (上限は 40)。 上限の 40 を超える値はすべて、最後のバケット>=36.0
にグループ化されます。
SELECT average(duration) FROM PageView WHERE pageUrl LIKE 'http://webportal.telco%' SINCE 1 week ago FACET buckets(duration, 40, 10)
このクエリは次の結果を返します。
以下は、セグメントが 10 個のバケットに分割された NRQL クエリの例です。 一番下のバケットには外れ値が含まれているため、それに応じて調整する必要がある場合があります。