【问题标题】:Set a token per item in a Splunk multiselect在 Splunk 多选中为每个项目设置一个标记
【发布时间】:2021-02-24 02:38:07
【问题描述】:

我想为表单上多选输入中的每个项目设置一个布尔标记(选择/未选择)。我看到了一种解决方法(奇怪?)缺乏开箱即用的能力来做这样的事情: 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,因为我在此仪表板上没有权限)?

【问题讨论】:

    标签: splunk splunk-dashboard


    【解决方案1】:

    我对仪表板 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 函数转换为字符串的原因

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多