如何解决在 Splunk 多选中为每个项目设置一个标记
我想为表单上多选输入中的每个项目设置一个布尔标记(选中/未选中)。我看到了一种解决方法(奇怪?)缺乏开箱即用的能力来做这样的事情: https://community.splunk.com/t5/Dashboards-Visualizations/Hide-Display-Panels-Using-Multiselect/m-p/336502/highlight/true#M21830
我认为合理的简化是:
<fieldset>
<input type="multiselect" token="item_selector" searchWhenChanged="true">
<delimiter>,</delimiter>
<choice value="item1">item1</choice>
<choice value="item2">item2</choice>
</input>
</fieldset>
<search>
<query>
eval data="$item_selector$"
| eval show1=match(data,"item1")
| eval show2=match(data,"item2")
</query>
<done>
<condition>
<set token="show1_token">$result.show1$</set>
<set token="show2_token">$result.show2$</set>
</condition>
</done>
</search>
我认为这行不通,因为:
<row>
<panel depends="$my_true$">
<title>Panel 1</title>
<html>$show1_token$</html>
<html>$show1_token$</html>
</panel>
</row>
$show1_token$
$show2_token$
而我会期望“真”或“假”的某种组合(取决于选择的项目)。
这是为每个项目设置布尔标记的合理方法(如果可以更正)吗?是否有替代方法(除了 javascript,因为我在此仪表板上没有权限)?
解决方法
我对仪表板 XML 进行了一些更改以解决您在“显示”面板中遇到的问题,现在当您更改 multiselect
输入中的选择时,它可以正确显示令牌值。试一试。
<dashboard>
<label>Multiselect - Token Test</label>
<fieldset>
<input type="multiselect" token="item_selector" searchWhenChanged="true">
<delimiter>,</delimiter>
<choice value="item1">item1</choice>
<choice value="item2">item2</choice>
</input>
</fieldset>
<search>
<query>
| makeresults
| eval data="$item_selector$"
| eval show1=toString(match(data,"item1"))
| eval show2=toString(match(data,"item2"))
</query>
<done>
<condition>
<set token="show1_token">$result.show1$</set>
<set token="show2_token">$result.show2$</set>
</condition>
</done>
</search>
<row>
<panel depends="$item_selector$">
<title>Panel 1</title>
<html>$show1_token$</html>
<html>$show2_token$</html>
</panel>
</row>
</dashboard>
一旦用户从 multiselect
下拉列表中选择一个选项,就会执行搜索(虚拟搜索)。
eval
语句中存在问题,因为 - “无法为字段分配布尔结果”。
这就是我将布尔值从 match
函数转换为字符串的原因
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。