メインコンテンツまでスキップ
Sumo Logic Japanese

メトリクスの量子化

Sumo が時間バケットでメトリクス データ ポイントを集計する方法を説明します。

Sumo はメトリクス Source から個々のメトリクス データ ポイントを取り込みます。メトリクス グラフでは、個々のデータ ポイントをグラフ化するのではなく、期間中に受信したデータ ポイントの集計値を表示します。 

量子化は、avgminmaxsumcount などの特定の集計関数を使用して、一定期間中の時系列のメトリクス データ ポイント (時間や分など) を集計するプロセスです。 

量子化の用語

このセクションでは、Sumo で使用する量子化関連の用語を定義します。 

バケット

Sumo がメトリクスを量子化する間隔を指すときに「バケット」という用語を使用します。

メトリクス クエリを実行すると、Sumo は、メトリクス クエリ ページで選択された量子化レベルに基づいて、または quantize operator で指定された間隔に基づいて、メトリクス クエリの時間範囲を連続するバケットに分割します。たとえば、以下のクエリがあるとします。

cpu | quantize to 15m

Sumo は時間範囲を 15 分のバケットに分割します。 

バケットごとに、Sumo は以下で説明するロールアップ タイプを使用して、バケット内のすべてのデータ ポイントの値を集計します。集計された値はメトリクス グラフに表示されます。

デフォルトでは、Sumo は avg ロールアップ タイプを使用します。quantize operator を使用して、別のロールアップ タイプを指定できます (「ロールアップ タイプが指定された量子化」を参照)。

ロールアップ タイプ

Sumo がメトリクスを量子化する際に使用する集計関数を指して、ロールアップという用語を使用します。次の表では、クエリを実行するときに選択できる、各種のロールアップ タイプを説明します。

ロールアップ タイプ 説明 適切な使用例
avg バケットごとに時系列のデータ ポイントの平均値を計算します。 CPU 使用量などの測定基準 (時間の経過とともに増加または減少する可能性のあるメトリクス) に適しています。 
min バケットごとに時系列のデータ ポイントの最小値を計算します。  時間の経過とともに値が減少するメトリクスに適しています。最小応答時間など。
max バケットごとに時系列のデータ ポイントの最大値を計算します。  時間の経過とともに値が増加するメトリクスに適しています。処理されるバイト数など。
sum バケットごとに時系列のデータ ポイントの合計値を計算します。  時系列の連続したデータ ポイントの差異を測定するメトリクスに適しています。
count バケットごとに時系列のデータ ポイントの数を計算します。  一連の時系列で生成されたデータ ポイント数の計算に適しています。

Sumo は取り込み時とクエリ時にメトリクスを量子化します。

取り込み時の量子化

取り込み時に、Sumo は未処理のメトリクス データ ポイントをすべてのロールアップ タイプ (avgminmaxsumcount) に対応する 1 分および 1 時間の精度で量子化します。  このデータは、Sumo の 1 分および 1 時間のロールアップ テーブルに格納されます。未処理のデータは、ベースライン テーブルと呼ばれるテーブルに格納されます。保持期間の詳細については、「メトリクスの取り込みと保存」を参照してください。

クエリ時の自動の量子化

このセクションでは、quantize operator を使用せずにメトリクス クエリを実行する際に、Sumo がどのようにメトリクスを量子化するかについて説明します。

メトリクス クエリで quantize operator を使用しない場合、Sumo は、クエリを実行するデータの寿命とデータ ポイントの数に基づいて、最適な量子化間隔を自動で決定します。量子化間隔はメトリクス クエリ タブの上部に表示されます。Sumo は、時間範囲内のバケットごとに、avg ロールアップ タイプを使用して、メトリクス データ ポイントを量子化します。

quantization-setting1.png

時間範囲でのメトリクスの寿命に応じて、(クエリ時間範囲で利用できるロールアップの種類に基づき) 最小の量子化間隔が設定されます。Sumo では、未処理のメトリクス データは 7 日間のみ、1 分のロールアップは 30 日間のみ保持されます。そのため、7 日より前のメトリクスに対してしてクエリを実行するとき、Sumo はデータを少なくとも 1 分に量子化する必要があります。これは、データの寿命から判断すると、1 分が利用可能な最小精度のロールアップだからです。同様に 30 日より前のメトリクスに対してクエリを実行するとき、Sumo は 1 時間に量子化する必要があります。これは、1 時間が 30 日を超えるメトリクスで利用できる最小精度のロールアップだからです。

クエリを実行するデータの寿命に加え、時系列ごとのデータ ポイントの量も自動での量子化で考慮される要因であり、量子化間隔がさらに長くなる可能性があります。Sumo は、グラフでのデータ ポイントが過剰にならない量子化間隔を選択します。UI ベースのクエリでは、時系列ごとに約 800 のデータ ポイントが含まれるように結果を制限するため、Sumo はその制限内で結果を維持する量子化レベルを選択します。 

必要に応じて、自動の量子化レベルを上書きすることができます。表示された量子化間隔をクリックして、1 秒から 1 日 (1s、10s、1m、15 min、1h、1d) までの間隔のプルダウン リストを表示します。

Sumo は実際の量子化間隔を、ユーザが選択した間隔にできるだけ近付けるように設定します。実際の間隔を目標間隔に設定できない場合 (通常、作成されるデータ ポイントが多すぎて、グラフに適度に表示できないため)、Sumo は次のようなメッセージを表示します。

sumo-cant-set-quant.png

使用する量子化間隔とロールアップ テーブルを Sumo が選択する方法の例

このセクションでは、quantize operator を使用して、クエリで使用する量子化間隔とロールアップ テーブルを指定しない場合に、Sumo がそれらをどのように選択するかの例を示します。 

例 1。  時間範囲は -15m

時間範囲 (秒) を、時系列ごとに表示するデータポイントの最大数 (800) で割り、目標量子化間隔を計算します。 

(15 分 x 60 秒/分) / 800 バケット = 1.125 秒/バケット

そのため、グラフを使いやすくするためには、少なくとも 1.25s に量子化する必要があります。 

Sumo はクエリを実質的に以下のように書き換えます。

cpu-idle | quantize to 5s

ここでは、過去 15 分で利用できるロールアップは何かに注目します (raw と 1m)。  Sumo は 2 つのロールアップベースの粒度のどちらかを選択します。1m ロールアップは目標の量子化間隔より粒度が劣るため、raw を使用して 5 秒に量子化します。  

例 2。  時間範囲は -1d

時間範囲 (秒) を、時系列ごとに表示するデータポイントの最大数 (800) で割り、目標量子化間隔を計算します。 

(24 時間 x 60 分/時間 x 60 秒/分) / 800 バケット = 108 秒/バケット

そのため、グラフを使いやすくするためには、少なくとも 108s に量子化する必要があります。 

Sumo はクエリを実質的に以下のように書き換えます。

cpu-idle | quantize to 15m

クエリ時の明示的な量子化 

メトリクス クエリを実行するとき、必要に応じて quantize operator を使用して量子化間隔やロールアップ タイプ、またはその両方を指定できます。 

quantize operator を使用してクエリを実行する場合、Sumo がメトリクス データ ポイントを量子化する方法は、以下に応じて変わります。 

  • クエリの quantize 句で指定するロールアップ タイプ (ある場合)。  ロールアップ タイプには、avgminmaxsumcount があります。(quantize operator でのロールアップ タイプの指定は省略可能です)。
  • クエリの quantize 句に続く operator (ある場合)。  

ロールアップ タイプが指定された量子化 

メトリクス クエリで quantize operator を使用し、ロールアップ タイプを指定する場合、Sumo はそれに応じたメトリクス データ ポイントのみを量子化します。たとえば、以下のクエリがあるとします。  

cpu | quantize to 15m using sum

Sumo は sum  ロールアップ タイプのみに量子化します。

ロールアップ タイプが指定されない量子化 

メトリクス クエリで、ロールアップ タイプを指定しないで quantize operator を使用する場合、Sumo は内部ですべてのロールアップ (avgminmaxsumcount) を生成します。このような内部的な結果を「記述的ポイント」と呼びます。記述的ポイントの例を以下に示します。  

{min=2, max=4, sum=6, count=2, avg=3}

生成された記述的ポイントを Sumo がどのように処理するかは、quantize 句直後の operator で決まります。 

quantize operator に aggregation operator が続く場合

quantize operator に続く aggregation operator は、集計を実行する前に、1 つを除いてすべてのロールアップを破棄することで、記述的ポイントを簡素なポイントに変換します。 

  • min operator は、集計を実行する前に、min を除くすべてのロールアップを破棄します。  
  • max aggregate operator は、集計を実行する前に、max を除くすべてのロールアップを破棄します。
  • 他の aggregation operator は、集計を実行する前に、avg を除くすべてのロールアップを破棄します。  

以下に、各ケースで選択されるクエリとロールアップの例を示します。

クエリ 結果
cpu | quantize to 1m avg ロールアップを使用します。
cpu | quantize to 1m | min min ロールアップを min operator にフィードします。
cpu | quantize to 1m | max max ロールアップを max operator にフィードします。
cpu | quantize to 1m | sum avg ロールアップを sum operator にフィードします。
cpu | quantize to 1m | count avg ロールアップを count operator にフィードします。
cpu | quantize to 1m | avg avg ロールアップを avg operator にフィードします。
quantize operator に parse operator が続く場合

記述的ポイントは変更されずに渡される場合があります。たとえば parse operator は時系列メタデータを変更しますが、データ ポイントは変更せずに渡されます。例: 

 ... | quantize to 5s | parse field=_sourceHost - as cluster,instance | ..

quantize operator に別の quantize operator が続く場合

quantize operator に続く quantize operator は、記述的ポイントに存在するすべてのロールアップ情報を有意義に使用します。例を次に示します。

... | quantize to 15s | quantize to 1m | ...

1 番目の quantize operator は、ベースライン データを表す一連の単純なポイントを受け取り、一連の記述的ポイントを生成します。

この変換を説明するために、ある時系列には、12:00:30 から 12:00:45 までの所定の 15s バケットに次の 3 つの単純なポイントが含まれていると仮定します。

timestamp | value
-----------------
12:00:33  | 4.0 
12:00:39  | 6.0
12:00:40  | 5.0

上記のバケットで次の記述的ポイントが生成されます。

timestamp | min | max | sum | count | avg
-----------------------------------------
12:00:30  | 4.0 | 6.0 | 15.0| 3     | 6.0

この一連の記述的ポイントが 2 番目の quantize operator にフィードされ、再び記述的ポイントが生成されます。12:00:00 から 12:01:00 の所定の 1 分間のバケット内で、次の 4 つの記述的ポイントが取得されると仮定します。

timestamp | min | max | sum  | count | avg
-----------------------------------------
12:00:00  | 1.0 | 7.0 | 8.0  | 2     | 4.0
12:00:15  | 1.0 | 1.0 | 1.0  | 1     | 1.0
12:00:30  | 4.0 | 6.0 | 15.0 | 3     | 6.0
12:00:45  | 5.0 | 5.0 | 15.0 | 3     | 5.0

上記の 1 分間のバケットで次の記述的ポイントが生成されます。

timestamp | min | max | sum | count | avg
-----------------------------------------
12:00:30  | 1.0 | 7.0 | 39.0| 9     | 4.3

 

 

  • この記事は役に立ちましたか?