Splunk いいよね。
Regex駆使してLog 出力変えたりグラフ作成したり。
ただ何がよくないってドキュメントが整っていなくて混とんとしている。
以下のようなInput とDropdown の連携ダッシュボード作るとき苦労したので共有しようと思う。
Input A
に入力すると Dropdown A
にデータが挿入される。
Dropdown A
で値を選択すると Input B
の値が変動する。
Input B
の値次第で Dropdown B
の選択肢が変わる。
Dropdown は自動的に一番上にくる選択肢を設定するので Input A
に値を入力するだけで Dropdown A
,
Input B
と Dropdown B
のすべてが自動的に定義されるという寸法。
以下Splunk XML
<panel>
<title>GROUP B</title>
<input type="text" token="inputB" searchWhenChanged="false">
<label>Input B Search</label>
<change>
<condition value="">
<unset token="dropdownB"></unset>
<set token="inputB">_DO_NOT_SEARCH_</set>
</condition>
<condition match="$value$=="*"">
<set token="dropdownB">*</set>
<set token="inputB">_DO_NOT_SEARCH_</set>
</condition>
</change>
<default>*</default>
</input>
<input type="dropdown" token="dropdownB" searchWhenChanged="true">
<label>Dropdown B</label>
<default>*</default>
<selectFirstChoice>true</selectFirstChoice>
<search>
<query>| inputlookup lookupTable2 | search dropdownB="$inputB$" OR name="*$inputB$*"</query>
<earliest>-24h@h</earliest>
<latest>now</latest>
<done>
<condition match="$job.resultCount$!=0">
<set token="form.dropdownB">$result.dropdownB$</set><!--required to prevent '*' to remain in dropdown-->
</condition>
</done>
</search>
<fieldForLabel>name</fieldForLabel>
<fieldForValue>dropdownB</fieldForValue>
</input>
</panel>
<panel>
<title>GROUP A</title>
<input type="text" token="inputA" searchWhenChanged="false">
<label>Input A Search</label>
<change>
<condition value="">
<unset token="dropdownA"></unset>
<set token="inputA">_DO_NOT_SEARCH_</set>
</condition>
<condition match="$value$=="*"">
<set token="dropdownA">*</set>
<set token="inputA">_DO_NOT_SEARCH_</set>
</condition>
</change>
</input>
<input type="dropdown" token="dropdownA" searchWhenChanged="true">
<label>Dropdown A</label>
<selectFirstChoice>true</selectFirstChoice>
<search>
<query>| inputlookup lookupTable1 | search dropdownA="$inputA$" OR name="*$inputA$*"</query>
<earliest>-24h@h</earliest>
<latest>now</latest>
<done>
<condition match="$job.resultCount$!=0">
<set token="form.inputB">$result.someValueOfB$</set>
</condition>
</done>
</search>
<fieldForLabel>name</fieldForLabel>
<fieldForValue>dropdownA</fieldForValue>
</input>
</panel>