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

Time Compare

[Time Compare (時間の比較)] ボタン

集計検索を実行する際に [Aggregates (集計)] タブで [Time Compare (時間の比較)] ボタンを使用できます。これにより、検索結果から比較操作が自動的に実行されます。

[Time Compare (時間の比較)] ボタンをクリックするだけで、クエリで compare オペレータが自動的に使用されます。compare オペレータは、集計検索において現在の検索結果を過去の期間のデータと比較します。compare オペレータは、avg、count、pct、sum といったオペレータを使用する集計検索でのみ使用できます。(詳細については、「グループ」を参照してください。)

[Time Compare (時間の比較)] を使用すると次の操作を行うことができます。

  • レイテンシや例外の発生数など、デプロイ前後でのWeb サイトのパフォーマンス メトリクスを評価できます。  
  • 特定のキーワード (メモリ例外など) をトラッキングして、それらを履歴データと比較して異常な傾向を見つけ出すことで、運用の問題の主原因をトラッキングできます。
  • Web サイトで日ごとまたは週ごとのアクティブ ユーザを比較して、戦略的なビジネス インサイトに役立てることができます。
  • ログイン試行の失敗回数を過去の平均と比較することで、悪意のあるアクティビティや攻撃を特定できます。

compare オペレータは次のように使用します。

  • 過去の単一期間と比較します。
  • 過去の複数の期間と比較します。
  • 過去の複数の期間における集計と比較します。

デフォルトでは、結果は [Search (検索)] ページの [Aggregates (集計)] タブに表示されます。出力テーブルの各列には、指定されたクエリのいずれかの結果が格納されます。最初の列名には target というキーワードが接尾辞として付加され、この列には現在時刻 (または時間範囲フィールドで指定されている時間範囲) の結果が格納されます。その他の列名には、クエリの時間シフト (時間を遡ってシフトした時間) が接尾辞として付加されます。ここでグラフ タイプを選択することで、結果を視覚的に表示できます。

たとえば、昨日のデータと比較する場合、count オペレータの後で compare オペレータを使用すると、集計テーブルの結果にはcount_target count_1d という列名が表示されます。

エイリアスを指定することで、クエリの接頭辞をカスタマイズできます。(詳細は「高度な比較」セクションを参照してください。)

デフォルトの時間比較

[Time Compare (時間の比較)] ボタンをクリックすると、デフォルトとして -1d の時間シフト比較が実行されます。または、メニューから他の時間シフト比較を選択することもできます。

Time Compare.png

時間シフトが接尾辞として付けられた名前で新しい列が追加され、比較結果が表示されます。

Timeshift.png

カスタム時間比較

カスタム時間比較を行うには、メニューから [Custom (カスタム)] を選択して、[Custom Time Compare (カスタム時間比較)] クエリ ビルダー ダイアログで必要な選択を行います。

CustomTimeCompare.png

  1. [Compare this query to a [number] [hour, day, week] historical timeshift (このクエリを [数値] [時間、日、週] の履歴タイム出力シフトと比較する)] で適切な時間数、日数、または週数を設定します。
  2. [With [number] time period(s) ([数値] 期間)] で期間を選択します。ここで 0 より大きい値を選択した場合:
  3. [Using [Individual, Average, Min, or Max] historical results ([個別、平均、最小、または最大] 履歴結果を使用)] を設定します。
    1. Individual (個別) - 各時間比較を個別に (例: 異なる線ごとに) 表示します。
    2. Average (平均) - 履歴比較の平均を表示します。
    3. Min (最小) - 履歴比較の最小値を表示します。
    4. Max (最大) - 履歴比較の最大値を表示します。
  4. [Run (実行)] をクリックします。

たとえば、過去 7 日間の連続クエリでの埋め戻しエラーの挙動を比較したい場合は、次のクエリを使用します。

_sourcehost=*cq*split* backfill error
| timeslice by 1m
| count _timeslice

その後、[Time Compare (時間の比較)] ボタンで [Custom (カスタム)] を選択し、[Custom Time Compare (カスタム時間比較)]  ダイアログを次のように設定します。

7TimePeriod.png

 [Aggregates (集計)]  タブの結果で折れ線グラフ アイコンを選択して、結果を次のように表示します。

Line Chart.png

または、同じクエリと結果で過去 3 週間の移動平均を比較したい場合は [Custom Time Compare (カスタム時間比較)] ダイアログを次のように設定します。

Average.png

そして、[Aggregates (集計)]  タブの結果で折れ線グラフ アイコンを選択して、結果を次のように表示します。

Timeshift1w.png

compare オペレータの他の例については、「例」を参照してください。

Compare と LogCompare

compare オペレータと logcompare オペレータは、構文も機能も非常によく似ていますが、異なる種類のデータを扱います。

  • compare は、集計された数値データに使用します (group by クエリや、count、sum、avg などの集計オペレータを使用したクエリからの結果の分析など)。
  • logcompare はログ シグネチャのカウントに使用します (最初のパイプの直後で使用します)。

compare オペレータ

compare オペレータは、集計検索において現在の検索結果を過去の期間のデータと比較します。compare オペレータは、avg、count、pct、sum といったオペレータを使用する集計検索でのみ使用できます。(詳細については、「グループ」を参照してください。)また、outlier、timeslice、および transpose オペレータとも併用できます。

構文

単一比較

現在の結果を、過去の単一期間の結果と比較します。比較を行うには、過去に遡る時間間隔を数値と単位で指定します。

  • ... | compare timeshift <number><time granularity>

次のクエリは、現在の結果と昨日の結果を比較します。-1d パラメータは、比較用のデータを取得するために遡る時間間隔を指定しています。

... | compare timeshift -1d

この比較は次のような図で表すことができます。

別の例として、次のクエリは現在の結果と先週の結果を比較します。

... | compare timeshift -1w

複数比較

現在の結果を、過去の複数期間の結果と比較します。最初のパラメータは、現在のクエリと、最新の過去の比較ポイントとの時間間隔を指定します。2 番目のパラメータは、作成する比較ポイントの数を指定します。

  • ... | compare timeshift -<number><time granularity> <number of timeshifts>

次のクエリは、現在の結果と、過去 1 週間の毎日の結果を比較します。最初のパラメータ (-1d) は比較ポイントの間隔を指定します。2 番目のパラメータ (7) は比較ポイント数を指定しています。

... | compare timeshift -1d 7

図で表すと次のようになります。

次のクエリは、現在の結果と、過去 3 週間の同じ曜日の結果を比較します。今日が月曜日であれば、このクエリは現在の結果を過去 3 週間の月曜日の結果と比較します。

... | compare timeshift 1w 3

集計比較

集計オペレータ (avg、min、または max) を使用して、過去の複数の期間の結果を集計します。

  • ... | compare timeshift -<number><time granularity> <number of shifts <avg/min/max>

次のクエリは、現在の結果を、過去 5 日間の結果の平均と比較します。

... | compare timeshift -1d 5 avg 

図で表すと次のようになります。

他の例:

過去 3 週間の同じ曜日の最大値

... | compare timeshift -1w 3 max

過去 4 回の 6 時間周期の最小値

... | compare timeshift -6h 4 min

高度な関数

複数の時間シフト フレーズをコンマで区切って使用することで、同じ compare オペレータで複数の異なる比較を行うこともできます。

  • ... | compare <comparison 1>, <comparison 2>, ...

例:

... | compare timeshift -12h, timeshift -1d 3 avg, timeshift -1w

エイリアスを指定することもできます。この場合、生成される列は指定された名前となります。

  • ... | compare <comparison> as <alias>

例:

... | compare timeshift -1d as yesterday, timeshift -1w 4 as last_four_weeks

ルール

  • compare オペレータは、group by 集計関数 (count、min、max、sum 等) の後で使用しなければなりません。
  • timeslice と compare を一緒に使用する場合は、timeslice ではエイリアスを指定しないでください。

制限事項

  • compare で生成できる追加のクエリは最大 7 件です。時間の比較が行われるたびに追加のクエリが生成されます。複数の比較や集計比較では、複数のクエリが生成されます。たとえば、次のクエリは使用できません。

... | compare timeshift -1d 14

このクエリは、過去 14 日間のデータと比較しています。その結果、14 件のクエリが生成されてしまうため、このクエリは使用できません。 

... | compare timeshift -1d 5 avg, timeshift -1w  4

このクエリは、過去 5 日間のデータおよび過去 4 週間の同じ曜日のデータと比較しています。その結果、9 件のクエリが生成されてしまうため、このクエリは使用できません。 

  • 重複するエイリアスは使用できません。たとえば、次のクエリは使用できません。

... | compare timeshift -1d 7 as last_week, timeshift -1d 7 avg as last_week
 

時系列データと過去のデータの比較

compare を使用して、2 日間のログ カウントの変化を分析します。

error
| timeslice by 1h
| count by _timeslice
| compare timeshift -2d

このクエリは、今日と 2 日前の結果をそれぞれ別の列に返します。(今日のデータは _count 列です。)

Count-2d.png

折れ線グラフで結果を視覚化します。

count-2dLineChart.png

複数の複数比較機能を使用することで、過去 1 時間の 10 分ごとのログ数を比較できます。

_sourceHost = prod
| timeslice by 1m
| count by _timeslice
| compare timeshift -10m 5

各 10 分周期の結果は、出力テーブルでそれぞれ別の列に返されます。
tenminute.png

折れ線グラフで結果を視覚化します。
TenMinuteLIneChart.png

すべての 10 分周期の平均と比較することもできます。

_sourceHost = prod
| timeslice by 1m
| count by _timeslice
| compare timeshift -10m 5 avg

TenMinAvg.png

折れ線グラフで結果を視覚化します。

TenMinAvgLineChart.png

ログからパースされたカテゴリ データの比較

ログからパースされたデータを使用して、compare で異なる _sourceHosts での遅延の変化を分析します。

"delay:"
| parse "delay: *" as delay
| avg(delay) as average_delay_in_millis by _sourceHost
| compare timeshift -30m

この例では、_sourceHost ごとの平均遅延を計算して、30 分前の結果と比較します。

DelayAvg.png

これらの結果から、次のような折れ線グラフが作成されます。

DelayLineChart.png

transpose オペレーション後の比較

transpose オペレーションの後で次のように compare オペレータを使用できます。

_sourceCategory=analytics
| timeslice 1m
| count by _timeslice, _sourceHost
| transpose row _timeslice column _sourceHost as %"nite-analytics-1", %"nite-analytics-2"
| compare with timeshift -15m

メール アラートの作成

compare オペレータを使用して、スケジュール済み検索のメール アラートを作成できます。

たとえば、過去 7 日間のログイン失敗回数の平均と比較して 15% のスパイクが発生した場合にアラートを受け取るようにするには、次のクエリを使用します。

_sourceCateogy=WebserverLogs "Bad username or password"
| timeslice 30m
| count _timeslice
| compare timeshift -1d 7 avg
| abs(count_target - count_7d )/ count_7d as percentOver
| where percentOver > 0.15

このクエリを使用して、スケジュール済み検索のメール アラートを構築できます。

  1. [Search (検索)] ページのクエリ ボックスで [Save As (名前を付けて保存)] をクリックします。
  2. [Schedule this Search (この検索をスケジュールする)] をクリックします。
  3. [Run frequency (実行頻度)] で、この検索を実行する頻度を選択します。このアラートでは [Every 2 Hours (2 時間ごと)] を選択します。
    Save Item.png
  4. [Send notification (通知を送信)][If the following condition is met (次の条件が成立した場合)] を選択します。
  5. [Alert condition (アラート条件)][Greater than > (次より大きい)] を選択し、[Number of results (結果数)]5 と入力します。
  6. [Alert Type (アラート タイプ)] で、[Email (メール)] を選択します。
  7. アラートの送信先となるメール アドレスを入力します。
  8. [Save (保存)] をクリックします。

これでログイン失敗のスパイクが発生すると通知が送られて来るようになります。  

 

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