やりたいこと
SplunkのダッシュボードでDril Down機能を使いevent結果に応じて遷移先のURLを変更したいシーンがあったため備忘録となります。
元々のモチベーションとしては、自社サイトのエラー情報を格納するDBを運用しており、その情報をSplunkに連携してダッシュボード化して統計情報等を参照していましたが、情報としてエラーが発生したファイル名とコード上の行数が記載されているためSplunkのDril Downを使ってGitHubの該当コード部分に一発で飛べたらいいなと思ったというのが発端です。
実施方法
高度なDril Downを利用することで実現可能です。
GUIではなくXMLベースで設定します。以下にSampleを記載します。
<dashboard version="1.1">
<label>Sample Dril Down</label>
<row>
<panel>
<table>
<search>
<query>| makeresults
| eval _raw="Date,time,field1,field2
04/03/2024,20:29,/aaa/hoge,110
04/03/2024,20:30,/bbb/hoge,120"
| multikv forceheader=1
| table Date time field1 field2</query>
<earliest>-24h@h</earliest>
<latest>now</latest>
</search>
<option name="drilldown">cell</option>
<drilldown>
<condition match="match($row.field1$, "^/aaa/.+")">
<link target="_blank">https://example.com/org/repository-aaa/$row.field1$#L$row.field2$</link>
</condition>
<condition match="match($row.field1$, "^/bbb/.+")">
<link target="_blank">https://example.com/org/repository-bbb/$row.field1$#L$row.field2$</link>
</condition>
</drilldown>
</table>
</panel>
</row>
</dashboard>
drildown要素の中でcondition matchを利用することでevent結果に応じた遷移先URLに対応させることが可能です。
今回のSampleの場合は選択された行のfield1のValueが/aaaから始まるか/bbbから始まるかでlink targetの値を変更しています。
ポイント
XMLを編集する形になるため通常のeval式のConditional Functionのmatchの記述方法とは少し変わります。
置き換えが必要な特殊文字列についてはこちらに記載があります。