Splunk 8.1 で動的ダッシュボードを作成しようとしています。multisearch
ユーザーがクリックしたチェックボックスに基づいて検索が行われるクエリを作成しようとしています。
<input type="time" token="field1">
<label>Time</label>
<default>
<earliest>-15m</earliest>
<latest>now</latest>
</default>
</input>
<input type="text" token="userinput1">
<label>User Input 1</label>
</input>
<input type="text" token="userinput2">
<label>User Input 2</label>
</input>
<input type="checkbox" token="indexesSelected" searchWhenChanged="true">
<label>Indexes</label>
<choice value="[search index=index1 $userinput1$ $userinput2$]">Index 1</choice>
<choice value="[search index=index2 $userinput1$ $userinput2$]">Index 2</choice>
<default></default>
<initialValue></initialValue>
<delimiter> </delimiter>
<prefix>| multisearch [eval test1="test1"] [eval test2="test2"] </prefix>
</input>
検索部分は次のようになります。
<search>
<query>$indexesSelected$
| table _time, index, field1, field2, field3, field4
| sort Time
</query>
<earliest>$field1.earliest$</earliest>
<latest>$field1.latest$</latest>
</search>
これは、最終的なクエリが次のようになることを除いて、期待どおりに機能します。
| multisearch [eval test1="test1"] [eval test2="test2"]
[search index=index1 $userinput1$ $userinput2$]
[search index=index2 $userinput1$ $userinput2$]
$userinput1$
これらを作成$userinput2$
して、リテラル文字列としてではなく、ダッシュボードのユーザー入力からトークン値に変換するにはどうすればよいですか。
<change>
タグを使用eval
して、ユーザーが選択したものset
に基づいて使用しようとしましたが、トークン値を許可せず、リテラル文字列のみに置き換えます。このようなもの:<condition>
eval
<change>
<condition match="like($indexesSelected$,"%index1%")">
<eval token="finalQuery">replace($indexesSelected$,"index1", "[search index=index1 $userinput1$ $userinput2$]")</eval>
</condition>
<condition match="like($indexesSelected$,"%index2%")">
<eval token="finalQuery">replace($indexesSelected$,"index2", "[search index=index2 $userinput1$ $userinput2$]")</eval>
</condition>
</change>