LoginSignup
0
1

More than 3 years have passed since last update.

平均値や中央値と比べて大きい/小さいものをcountしたい時はeventstats

Last updated at Posted at 2021-03-02

もっと包括的なタイトルの方が良い気がしますが、初期衝動でそのままにします。

通常、平均値(avg)や中央値(median)を単純に得るには、statsコマンドを使うと思います。

しかし、今回私がやりたかったのは、
「得られたそれらの値と元の値とを比較した結果で絞りたい」というものでした。

ここで利用するのがeventstatsコマンドです。
eventstatsで平均値や中央値を出すと、
それらの値がそれぞれのイベントに紐付くので、あとから比較処理ができます。

whereコマンドで比較後に、countコマンドで再集計してミッションコンプリートです。

index=main host=web_application 
| eventstats median(bytes) AS med
| table bytes, med
| where bytes >= med
| stats count

※ tableコマンドは本来不要ですが、後述時の視覚化のために記述してあります。

参考にしたサイト

上記コマンド 各フェイズの結果対応

1行目

index=main host=web_application 

image.png
image.png

2行目(eventstats)

index=main host=web_application 
| eventstats median(bytes) AS med

image.png
image.png
statsコマンドを使用した時と違いますね。(その分、処理はeventstatsの方が重いです。)
image.png

3行目

index=main host=web_application 
| eventstats median(bytes) AS med
| table bytes, med

一応、次の項のために、bytesフィールドを昇順ソートしときました。
image.png

4行目(元の値と統計値を各イベントごとに比較)

index=main host=web_application 
| eventstats median(bytes) AS med
| table bytes, med
| where bytes >= med

image.png

5行目(改めて数える)

index=main host=web_application 
| eventstats median(bytes) AS med
| table bytes, med
| where bytes >= med
| stats count

image.png

20210306追記(上記をグループ別に実施することも可能)

言われてみれば何てことないですが、きっとそういうことやりたい人も居るよね?

index=main host=web_application 
| eventstats median(bytes) AS med by categoryId

image.png
↑↓ 一致してますよね
  (8グループ。各グループごとの中央値が、所属するイベントに各々紐付けられました。)
image.png

更に次へ

@odorusatoshi さんの記事。面白いぞ

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1