1. Transforming Commandsとは
Transforming Commands(変換コマンド)とは、 個々のイベントを集計して表(統計)の形に作り変えるコマンドの総称です。 前節で触れたとおり、グラフや表を作るには、どこかでこの変換コマンドを通す必要があります。
ここでは初心者がまず覚えるべき代表格として、
top・rare・statsの3つを取り上げます。
2. topとrareで頻度を見る
topは、指定したフィールドの値を登場回数の多い順に上位を表示するコマンドです。
「一番アクセスの多いIPは?」「最も多いステータスコードは?」といった問いに素早く答えられます。
index=web | top limit=5 clientip
limit=5で上位5件に絞っています。topは件数(count)だけでなく、
全体に占める割合(percent)も自動で計算して表示してくれます。
| clientip | count | percent |
|---|---|---|
| 10.0.0.5 | 1,240 | 24.8 |
| 10.0.0.9 | 870 | 17.4 |
| 10.0.0.3 | 512 | 10.2 |
逆に登場回数の少ない順に見たいときはrareを使います。
書き方はtopと同じで、めったに現れない珍しい値を探すのに役立ちます。
index=web | rare limit=5 status
3. statsで自在に集計する
statsは、集計コマンドの中でも最も基本となるコマンドです。
count(件数)・sum(合計)・avg(平均)などの集計関数と、
by句によるグループ分けを組み合わせて、必要な集計表を作れます。
index=web | stats count
index=web | stats count by status
index=web | stats avg(bytes) sum(bytes) by host
1行目は全体の件数、2行目はステータスコードごとの件数、
3行目はホストごとに転送バイト数の平均と合計を求めています。
byのうしろに書いたフィールドが表の「行の見出し」になります。
| status | count |
|---|---|
| 200 | 8,420 |
| 404 | 530 |
| 500 | 112 |
集計結果に分かりやすい列名を付けたいときはasを使います。
例: stats count as アクセス数 by host。
4. chartとtimechart
statsを発展させたコマンドにchartとtimechartがあります。
いずれもグラフ表示と相性のよい表を作ります。
timechart― 時間を横軸にした集計。時系列の折れ線・棒グラフの作成に使います。chart― 2つのフィールドで縦横に集計する(クロス集計)表を作ります。
index=web | timechart span=1h count by status
この例は1時間ごとに、ステータスコード別の件数を集計します。 結果はそのまま「時間帯別のアクセス推移グラフ」として可視化でき、 時間帯ごとのエラー件数の変化を確認できます。
timechartは横軸が必ず時間(_time)になります。
時間以外の軸で集計したいときはchartやstatsを使いましょう。
5. まとめ
- Transforming Commandsはイベントを集計して表に変えるコマンド群
top/rareで値の頻度上位・下位を素早く確認できるstatsは集計関数+by句で自在に集計できる中心的コマンド- 時系列は
timechart、クロス集計はchartが便利