ラボ 3: データのグラフ化
次は、集計ステートメントを使用してクエリを作成し、結果を集計して、グラフ作成でデータを視覚化します。
ここでは、404 エラーが発生していて、詳細を知りたいとします。エラーは同時に発生しているのでしょうか? 集計ステートメントをクエリに追加して、データのグループ化と並び替えを行い、結果の解釈が簡単になるようにします。
検索結果を集計する
最初に各ステータス コードの結果を集計します。
- 検索クエリ ボックスに、ソフトリターン (<Alt> <Enter>) を入力して、改行します。次の count ステートメントを追加します。
| count by status_code
クエリは以下のようになります。_sourceCategory=Labs/Apache/Access and GET
| parse "\"GET * HTTP/1.1\" * * \"*\" " as url,status_code,size,referrer
| count by status_code - [Start (開始)] をクリックします。
[Messages (メッセージ)] タブの横に新規タブ [Aggregates (集計)] が表示されます。このタブに status_code
と _count
列があるテーブルが表示されます。
これらのステータス コードが発生した時間を確認します。timeslice operator を使用して、1 分ごとにステータス コードを検索して集計できます。
- count operator の上に以下の新しい行を追加します。
| timeslice
1m
- count operator を次のように編集します。
| count by _timeslice, status_code
これでクエリは以下のようになります。
_sourceCategory=Labs/Apache/Access and GET
| parse "\"GET * HTTP/1.1\" * * \"*\" " as url,status_code,size,referrer
| timeslice 1m
| count by _timeslice, status_code
- [Start (開始)] をクリックして、検索を実行します。
これで、[Aggregates (集計)] タブには、各ステータス コードと 1 分間ごとの発生回数が表示されます。テーブルの列ヘッダーをどちらかクリックして、その列で並べ替えできます。
結果を転置する
役に立つ情報が表示されましたが、もっと分かりやすくできます。transpose operator を使用して (Excel のように) 転置を実行します。
- count operator の下に次のクエリを追加します。
| transpose row _timeslice column status_code
クエリは以下のようになります。
_sourceCategory=Labs/Apache/Access and GET
| parse "\"GET * HTTP/1.1\" * * \"*\" " as url,status_code,size,referrer
| timeslice 1m
| count by _timeslice, status_code
| transpose row _timeslice column status_code - [Start (開始)] をクリックします。
これで、[Aggregates (集計)] テーブルには、各ステータス コードが列として表示され、その時間間隔内の各ステータス コードの数が行として表示されます。
かなり見やすくなりました。Sumo を使用すれば、ここからさらに分かりやすくできます。グラフを作成して、データを視覚化します。
グラフを作成する
[Aggregates (集計)] タブの右上に表示されるグラフ ボタンからわかるように、結果に適用できるグラフ オプションは多数あります。ここでは、横棒、縦棒、線、面積、円の各グラフを作成できます。
縦棒グラフを作成しましょう。
- [Column Chart (縦棒グラフ)] アイコンをクリックします。
ステータス コード別のバーがある棒グラフが表示されます。見やすいですが、グラフのほとんどがステータス コード 200 で、これは分析対象ではありません。
- 右側の凡例の 200 という項目をクリックして、削除できます。304 イベントも削除します。
これで、凡例の 200 および 304 イベントは灰色表示されます。
200 と 304 をクエリから完全に削除したらどうでしょうか? 問題ありません。クエリの timeslice 行の真上に where 句を追加するだけです。集計する前にデータを絞り込むことをお勧めします。したがって、count 演算の前に where ステートメントを追加します。感嘆符は NOT として使用します。したがって、このステートメントの意味は「ここで、ステータス コードは 200 や 304 ではない」となります。
- 次のステートメントをクエリに追加します。
| where !(status_code=200 or status_code=304)
クエリは以下のようになります。
_sourceCategory=Labs/Apache/Access and GET
| parse "\"GET * HTTP/1.1\" * * \"*\" " as url,status_code,size,referrer
| where !(status_code=200 or status_code=304)
| timeslice 1m
| count by _timeslice, status_code
| transpose row _timeslice column status_code - [Start (開始)] をクリックします。
これで、200 および 304 ステータス コードはグラフや凡例に表示されません。
やりました! 素晴らしい上達です。クイック スタート ユーザ チュートリアルのパート 3 のタスクが以下のように完了しました。
-
検索結果を集計しました。
-
transpose operator を使用して、結果を見やすくしました。
-
結果のグラフを作成し、グラフの凡例を調整して分析対象のデータのみを表示しました。
次は、パート 4 に移動して、結果をダッシュボードに追加します。