【Splunk】ダッシュボードの色を正規表現で色分けする
こんにちは。
SplunkのダッシュボードはGUIで様々なカスタマイズが可能ですが、xmlを直接編集しないとカスタマイズできない項目もあります。この記事では、正規表現やパターンマッチを使ってダッシュボードを色分けする方法を紹介します。
記事で扱うデータは公式のチュートリアル用ファイルのPrices.csv
を使用しています。
docs.splunk.com
データの確認
Prices.csv
の内容を確認します。
製品名や製品ID、価格などが含まれるテーブルデータです。
GUIで色分け
このデータを、まずはGUIで色分けしてみます。色分けにはスケール、範囲、値の3つのオプションがあり、値は更に自動と規則の定義という2つに分かれます。
それぞれの機能の概要を書きます。
- スケール
- 値の大小でグラデーションを作る
- 数値型のフィールドのみ色分けできる
- 範囲
- セルの値の範囲と対応する色を決める
- 数値型のフィールドのみ色分けできる
- 値
- 自動
- 異なる値のセルが異なる色になるよう自動で色が決まる
- ユニークな値が10個あれば10色に塗り分けられてカラフル
- 自動
- 規則の定義
- セルの値と対応する色を決める
- 値がマッチする条件は完全一致のみ
- 以下の画像では、セルの値が19.99の場合と24.99の場合に色を塗るよう定義しています
GUIでもだいたいのことはできますが、xmlを直接編集すれば、部分一致などより細かいカスタマイズが可能です。
xmlで色分け
正規表現とパターンマッチを使って、部分一致で色分けを行います。
ダッシュボードの編集画面からソースを開きます。
<dashboard> <label>SandBox</label> <row> <panel> <title>色分け</title> <table> <search> <query>index="price" | table Code productId product_name price sale_price | sort Code</query> <earliest>0</earliest> <latest></latest> </search> <option name="count">100</option> <option name="drilldown">none</option> <option name="refresh.display">progressbar</option> </table> </panel> </row> </dashboard>
<option name="refresh.display">progressbar</option>
の下に、以下のコードを追加します。
正規表現の場合
<format type="color" field="productId"> <colorPalette type="expression">if(match(value,"WC.*"),"#006D9C","")</colorPalette> </format>
パターンマッチの場合
<format type="color" field="productId"> <colorPalette type="expression">if(like(value,"WC%"),"#006D9C","")</colorPalette> </format>
例えば正規表現を使う場合、全体のコードはこうなります。
<dashboard> <label>SandBox</label> <row> <panel> <title>色分け</title> <table> <search> <query>index="price" | table Code productId product_name price sale_price | sort Code</query> <earliest>0</earliest> <latest></latest> </search> <option name="count">100</option> <option name="drilldown">none</option> <option name="refresh.display">progressbar</option> <format type="color" field="productId"> <colorPalette type="expression">if(match(value,"WC.*"),"#006D9C","")</colorPalette> </format> </table> </panel> </row> </dashboard>
コードを編集した後のダッシュボードです。
このように、部分一致で複数のセルに色を塗れました。
さいごに
Splunkのダッシュボードは細かいカスタマイズが可能ですが、やりすぎると、他の人が中身を理解できなくなったり、メンテナンスが難しくなったりするので、ほどほどに留めた方が良いと思います。*1
ここまで読んでいただき、ありがとうございました。