eventstats
eventstats
コマンドを使用して、stats
、link
、timestats
などのグループ化コマンドによって識別されるグループのプロパティについて、(オプションでフィールド別にグループ化された)全体的なサマリー統計を取得します。出力には、集計ごとに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>]*]
パラメータ
次の表に、このコマンドで使用されるパラメータとその説明を示します。
パラメータ | 説明 |
---|---|
|
このパラメータを使用して、結果をグループ化する際の基準にするフィールドを指定します。 |
|
このパラメータを使用して、 |
サポートされるファンクションは、ファンクション、位置ファンクションおよび時系列分析ファンクションを参照してください。
ファンクション
次の表に、このコマンドで使用できるファンクションとその例を示します。
ファンクション | 例 |
---|---|
値 オプションのデリミタ付きで特定フィールドの最初の10個の値をリストします。任意のフィールド・データ型に適用できます。 |
|
一意 オプションのデリミタ付きで特定フィールドの最初の10個の一意値をリストします。任意のフィールド・データ型に適用できます。 |
|
最古 指定されたフィールドの最も古いnull以外の値を返します。特定の問合せ結果に対してフィールドが完全に空の場合、nullが返されます。 |
|
最新 指定されたフィールドの最も新しいnull以外の値を返します。特定の問合せ結果に対してフィールドが完全に空の場合、nullが返されます。 |
|
平均 ノート: このファンクションは、数値フィールドでのみサポートされます。 |
|
件数 ノート: このファンクションは、SQLと同様のセマンティクスを使用します。つまり、countはすべての行の数を返しますが、count(field)はフィールドがnull以外のすべての行の数を返します。 |
|
個別件数 |
|
最大 ノート: このファンクションは、数値フィールドでのみサポートされます。 |
|
中央値 ノート: このファンクションは、数値フィールドでのみサポートされます。 |
|
最小 ノート: このファンクションは、数値フィールドでのみサポートされます。 |
|
パーセンテージ ノート: このファンクションは、数値フィールドでのみサポートされます。 |
|
合計 ノート: このファンクションは、数値フィールドでのみサポートされます。 |
|
標準偏差 ノート: このファンクションは、数値フィールドでのみサポートされます。 |
|
NULLの場合 値がNULLの場合、値を変更します。 ノート: この関数は、イベント統計、地理統計、統計およびタイムスタンプ(リンク後ではない)専用です。 |
|
位置ファンクション
次の表に、このコマンドに固有のファンクションとその例を示します。
ファンクション | 例 |
---|---|
first 取得された結果内で、現在のソート順序で定義された最初の行からプロパティ値を取得します。 |
構文:
|
last 取得された結果内で、現在のソート順序で定義された最後の行からプロパティ値を取得します。 |
構文:
|
nthval 取得された結果内で、現在のソート順序で定義されたn番目の行からプロパティ値を取得します。 |
構文:
|
lag 現在の行より前の特定のオフセットにある行からプロパティ値を取得します。デフォルト・オフセットは1です。 |
構文:
|
lead 現在の行より後の特定のオフセットにある行からプロパティ値を取得します。デフォルト・オフセットは1です。 |
構文:
|
rownum 取得された結果内で、現在のソート順序で定義された各行に、1から順番に一意の番号を割り当てます。 |
構文:
|
時系列分析ファンクション
次の表に、時系列分析用のファンクションとその例を示します。
ファンクション | 例 |
---|---|
peak 取得された結果内で、ピークの大きさを持つプロパティ値を取得します。大きさの値が大きいほど、絶対値も大きくなります。 |
構文:
|
peakscore 取得された結果内で、0と1の間で正規化されたピーク・スコアを持つプロパティ値を取得します。スコアを使用して、ピークを比較できます(最大ピークはスコアとして1を取得し、他のすべての値は0と1の間です)。 |
構文:
|
valley 取得された結果内で、バレーの大きさを持つプロパティ値を取得します。大きさの値が小さいほど、絶対値も小さくなります。 |
構文:
|
valleyscore 取得された結果内で、0と1の間で正規化されたバレー・スコアを持つプロパティ値を取得します。スコアを使用して、バレーを比較できます(最小バレーはスコアとして0を取得し、他のすべての値は0と1の間です)。 |
構文:
|
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'
この機能は、スパイク後に発生したすべてのメモリー不足イベントの識別など、時系列データの検索とグループ化に使用できます。大きさの値が大きいほど、絶対値も大きくなります。スコアを使用して、ピークを比較できます(最大ピークはスコアとして1を取得し、他の値は0と1の間です)。
一般的なシナリオでeventstats
コマンドを使用する例は、次を参照してください:
トランザクションですべての致命的なログをグループ化し、すべてのグループの全体的な平均経過時間を取得します:
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'
]