Splunk マルチバリューの外れ値を削除する
https://community.splunk.com/t5/Reporting/replacing-large-numeric-values-with-0/m-p/507054
でやったことのまとめ
課題
multivalue.spl
| makeresults
| eval _raw="xTemp_wl0
48
50
43
60
60
54
61
60
1161181233
43
60
49"
| multikv forceheader=1
| stats list(xTemp_wl0) as xTemp_wl0
multivalue.spl
| makeresults
| eval _raw="xTemp_wl0
48
50
43
60
60
54
61
60
1161181233
43
60
49"
| multikv forceheader=1
| stats list(xTemp_wl0) as xTemp_wl0
xTemp_wl0 |
---|
48 50 43 60 60 54 61 60 1161181233 43 60 49 |
このような一つだけとても大きい数があるマルチバリューの平均を出したい
そのままavg()
すると大きな値になるので、外れ値を除外、0
にしたい
という課題でした。
mvmap
mvmap.spl
| makeresults
| eval _raw="xTemp_wl0
48
50
43
60
60
54
61
60
1161181233
43
60
49"
| multikv forceheader=1
| stats list(xTemp_wl0) as xTemp_wl0
| stats avg(eval(mvmap(xTemp_wl0,if(xTemp_wl0>100,0,xTemp_wl0)))) as average
mvmap.spl
| makeresults
| eval _raw="xTemp_wl0
48
50
43
60
60
54
61
60
1161181233
43
60
49"
| multikv forceheader=1
| stats list(xTemp_wl0) as xTemp_wl0
| stats avg(eval(mvmap(xTemp_wl0,if(xTemp_wl0>100,0,xTemp_wl0)))) as average
average |
---|
49 |
Splunk ver 8以降でつかえるmvmap
を使用するとこんな感じ
やってることはeval
とif
の評価なのでわかりやすい
rex
rex.spl
| makeresults
| eval _raw="xTemp_wl0
48
50
43
60
60
54
61
60
1161181233
43
60
49"
| multikv forceheader=1
| stats list(xTemp_wl0) as xTemp_wl0
| rex mode=sed field=xTemp_wl0 "s/\d{3,}/0/g"
| stats avg(xTemp_wl0) as average
rex.spl
| makeresults
| eval _raw="xTemp_wl0
48
50
43
60
60
54
61
60
1161181233
43
60
49"
| multikv forceheader=1
| stats list(xTemp_wl0) as xTemp_wl0
| rex mode=sed field=xTemp_wl0 "s/\d{3,}/0/g"
| stats avg(xTemp_wl0) as average
average |
---|
49 |
rex
はマルチバリューでも普通に使えるので、正規表現\d{3,}
で三桁以上の数字を0
にしている。
まとめ
- マルチバリューには
match()
やlike()
の評価系だけでなくrex
も使える。
-
stats
等の集計コマンドもマルチバリューを展開しなくてもそのまま計算できる。
https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/CommonStatsFunctions
- JSONから展開したフィールドはマルチバリューが多いので活用してください。
match()
やlike()
の評価系だけでなくrex
も使える。stats
等の集計コマンドもマルチバリューを展開しなくてもそのまま計算できる。 https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/CommonStatsFunctions
小ネタばかりだな
Author And Source
この問題について(Splunk マルチバリューの外れ値を削除する), 我々は、より多くの情報をここで見つけました https://qiita.com/toshikawa/items/b8952f243efc85a4ffd7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .