eventstats

eventstatsコマンドを使用して、statslinktimestatsなどのグループ化コマンドによって識別されるグループのプロパティについて、(オプションでフィールド別にグループ化された)全体的なサマリー統計を取得します。出力には、集計ごとに1つのフィールドが含まれます。

構文

ノート

trend集計演算子は、eventstatsでは許可されていません。
eventstats <stats_function> (<field_name>) [as <new_field_name>] [, <stats_function> (<field_name>) [as <new_field_name>]]* [by <field_name> [, <field_name>]*]

パラメータ

次の表に、このコマンドで使用されるパラメータとその説明を示します。

パラメータ 説明

field_name

このパラメータを使用して、結果をグループ化する際の基準にするフィールドを指定します。

new_field_name

このパラメータを使用して、statsコマンドを適用した後にフィールドの新しい名前を指定します。

サポートされるファンクションは、ファンクション位置ファンクションおよび時系列分析ファンクションを参照してください。

ファンクション

次の表に、このコマンドで使用できるファンクションとその例を示します。

ファンクション

オプションのデリミタ付きで特定フィールドの最初の10個の値をリストします。任意のフィールド・データ型に適用できます。

values(field_name)

  • values(Label)

  • values(Severity)

  • values(‘Client Host City’)

  • values(‘Client Host Country’)

  • values(‘Client Host Continent’)

一意

オプションのデリミタ付きで特定フィールドの最初の10個の一意値をリストします。任意のフィールド・データ型に適用できます。

unique(field_name)

  • unique(Label)

  • unique(Severity)

  • unique(‘Client Host City’)

  • unique(‘Client Host Country’)

  • unique(‘Client Host Continent’)

最古

指定されたフィールドの最も古いnull以外の値を返します。特定の問合せ結果に対してフィールドが完全に空の場合、nullが返されます。

earliest(field_name)

  • earliest(‘OS Process ID’)

最新

指定されたフィールドの最も新しいnull以外の値を返します。特定の問合せ結果に対してフィールドが完全に空の場合、nullが返されます。

latest(field_name)

  • latest(‘Error ID’)

平均

ノート: このファンクションは、数値フィールドでのみサポートされます。

avg(field_name)

  • avg(‘Content Size’)

件数

ノート: このファンクションは、SQLと同様のセマンティクスを使用します。つまり、countはすべての行の数を返しますが、count(field)はフィールドがnull以外のすべての行の数を返します。

count(field_name)

  • count(Source)

個別件数

distinctcount(field_name)

  • distinctcount(Severity)

最大

ノート: このファンクションは、数値フィールドでのみサポートされます。

max(field_name)

  • max('Content Size')

中央値

ノート: このファンクションは、数値フィールドでのみサポートされます。

median(field_name)

  • median('Content Size')

最小

ノート: このファンクションは、数値フィールドでのみサポートされます。

min(field_name)

  • min('Content Size')

パーセンテージ

ノート: このファンクションは、数値フィールドでのみサポートされます。

pct(field_name, n)

  • pct('Content Size', 90)

合計

ノート: このファンクションは、数値フィールドでのみサポートされます。

sum(field_name)

  • sum(‘Content Size’)

標準偏差

ノート: このファンクションは、数値フィールドでのみサポートされます。

stddev(field_name)

  • stddev(‘Content Size’)

NULLの場合

値がNULLの場合、値を変更します。

ノート: この関数は、イベント統計、地理統計、統計およびタイムスタンプ(リンク後ではない)専用です。

ifnull(stats_function(field_name), return value)

  • ifnull(avg('Content Size)', 0)

  • ifnull(latest(message), none)

位置ファンクション

次の表に、このコマンドに固有のファンクションとその例を示します。

ファンクション

first

取得された結果内で、現在のソート順序で定義された最初の行からプロパティ値を取得します。

構文: first(field_name)

  • | eventstats first('Content Size')

last

取得された結果内で、現在のソート順序で定義された最後の行からプロパティ値を取得します。

構文: last(field_name)

  • | eventstats last('Content Size')

nthval

取得された結果内で、現在のソート順序で定義されたn番目の行からプロパティ値を取得します。

構文: nthval(field_name, n)

  • | eventstats nthval('Content Size', 2)

lag

現在の行より前の特定のオフセットにある行からプロパティ値を取得します。デフォルト・オフセットは1です。

構文: lag(field_name)

  • | eventstats lag('Content Size')

lead

現在の行より後の特定のオフセットにある行からプロパティ値を取得します。デフォルト・オフセットは1です。

構文: lead(field_name)

  • | eventstats lead('Content Size')

rownum

取得された結果内で、現在のソート順序で定義された各行に、1から順番に一意の番号を割り当てます。

構文: rownum

  • | eventstats rownum

時系列分析ファンクション

次の表に、時系列分析用のファンクションとその例を示します。

ファンクション

peak

取得された結果内で、ピークの大きさを持つプロパティ値を取得します。大きさの値が大きいほど、絶対値も大きくなります。

構文: peak

  • | eventstats peak('Content Size')

peakscore

取得された結果内で、0と1の間で正規化されたピーク・スコアを持つプロパティ値を取得します。スコアを使用して、ピークを比較できます(最大ピークはスコアとして1を取得し、他のすべての値は0と1の間です)。

構文: peakscore

  • | eventstats peakscore('Content Size')

valley

取得された結果内で、バレーの大きさを持つプロパティ値を取得します。大きさの値が小さいほど、絶対値も小さくなります。

構文: valley

  • | eventstats valley('Content Size')

valleyscore

取得された結果内で、0と1の間で正規化されたバレー・スコアを持つプロパティ値を取得します。スコアを使用して、バレーを比較できます(最小バレーはスコアとして0を取得し、他のすべての値は0と1の間です)。

構文: valleyscore

  • | eventstats valleyscore('Content Size')

peakおよびpeakscoreファンクションを使用して、ピークの大きさおよび0と1の間で正規化されたスコアについて、リンク・ビジュアライゼーションの順次データを分析します。たとえば、次の問合せは、Access Logsログ・ソースのDurationフィールドを使用して、ユーザー・レスポンス時間の最大ピークを強調表示します:

'Log Source' = 'OCI API Gateway Access Logs' 
| link span = 5minute Time, Server 
| stats avg(Duration) as 'Avg. Duration' 
| sort Server, 'Start Time' 
| eventstats peak('Avg. Duration')      as 'Peak Magnitude', 
             peakscore('Avg. Duration') as 'Peak Score' by Server 
| highlightgroups priority = high 
  [ * | where 'Peak Score' > 0.9 ] as 'High Response Time - Needs Attention'

peakおよびpeakscoreファンクションを使用して、リンク・ビジュアライゼーションの順次データを分析します

この機能は、スパイク後に発生したすべてのメモリー不足イベントの識別など、時系列データの検索とグループ化に使用できます。大きさの値が大きいほど、絶対値も大きくなります。スコアを使用して、ピークを比較できます(最大ピークはスコアとして1を取得し、他の値は0と1の間です)。

トランザクションですべての致命的なログをグループ化し、すべてのグループの全体的な平均経過時間を取得します:

severity = fatal | link 'Transaction ID' | stats avg('Elapsed Time (System)') as 'Average Elapsed Time' | eventstats avg('Average Elapsed Time') as 'Overall Average Elapsed Time'
severity = fatal | stats avg('Elapsed Time (system)') as 'Average Elapsed Time' | eventstats avg('Average elapsed time') as 'Overall Average elapsed time'

エンティティ・タイプとトランザクションですべての致命的なログをグループ化し、同じエンティティ・タイプを含むすべてのグループの全体的な平均経過時間を取得します:

severity = fatal | link 'Entity Type', 'Transaction ID' | stats avg('Elapsed Time (System)') as 'Average Elapsed Time' | eventstats avg('Average Elapsed Time') as 'Overall Average Elapsed Time' by 'Entity Type'
severity = fatal | stats avg('Elapsed Time (System)') as 'Average Elapsed Time' by 'Entity Type', 'Transaction ID'  | eventstats avg('Average Elapsed Time') as 'Overall Average Elapsed Time' by 'Entity Type'

リンク・ビジュアライゼーションで、各行に番号を追加します:

'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB 
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database

行番号を使用して最後のイベントを識別します:

'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| eventstats rownum as 'Row Number' by Database
| addfields
   [ * | where Label = 'Abnormal Termination'
       | eventstats last('Row Number') as 'Crash Row'
   ]

選択したイベントの前と次のイベントを識別します:

'Log Source' = 'Database Alert Logs' and Label != null and Entity = MyDB
| rename Entity as Database
| link span = 1minute Time, Database, Label
| sort Database, 'Start Time'
| addfields
   [ *
      | where Label != null
      | eventstats lag(Label) as 'Previous Event',
                   lead(Label) as 'Next Event'
   ]