You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Splunk子搜索结果赋值给变量以生成仪表板令牌?

问题解决方法

你的查询报错是因为子搜索默认返回domain1Users=XXX这种键值对格式,直接赋值给eval时会被当成字符串,无法进行数值运算。以下两种方案可以解决问题:

方案1:修改子搜索返回纯数值

在每个子搜索末尾添加| return $字段名,让子搜索只输出数值而非键值对,这样eval就能正确识别并赋值:

<search id="app_logs">
  <query>
    index=my_logs
    | eval domain1Count = [
        search "Middleware" "www.example-domain-1.com"
        | stats distinct_count(UserId) as domain1Users
        | return $domain1Users
      ] 

    | eval domain2Count = [
        search "Middleware 2" "www.example-domain-2.com"
        | stats distinct_count(UserId) as domain2Users
        | return $domain2Users
      ] 
  
    | eval totalCount = domain1Count + domain2Count
    | table domain1Count domain2Count totalCount
  </query>

  <done>
    <set token="domain1Count">$result.domain1Count$</set>
    <set token="domain2Count">$result.domain2Count$</set>
    <set token="totalCount">$result.totalCount$</set>
  </done>
</search>

方案2:优化查询(推荐)

多次子搜索会增加Splunk的查询开销,尤其是数据量较大时。可以通过一次扫描日志,统一统计两个域名的用户数,再转成所需字段:

<search id="app_logs">
  <query>
    index=my_logs (("Middleware" "www.example-domain-1.com") OR ("Middleware 2" "www.example-domain-2.com"))
    | eval domain=case(
        match(_raw, "Middleware") AND match(_raw, "www.example-domain-1.com"), "domain1",
        match(_raw, "Middleware 2") AND match(_raw, "www.example-domain-2.com"), "domain2"
    )
    | stats dc(UserId) as userCount by domain
    | transpose 2 column_name=domain
    | rename "domain1" as domain1Count, "domain2" as domain2Count
    | eval totalCount = domain1Count + domain2Count
    | table domain1Count domain2Count totalCount
  </query>

  <done>
    <set token="domain1Count">$result.domain1Count$</set>
    <set token="domain2Count">$result.domain2Count$</set>
    <set token="totalCount">$result.totalCount$</set>
  </done>
</search>

两种方案都能让查询正常运行,生成的令牌可以直接在仪表板中引用。

内容的提问来源于stack exchange,提问作者Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 10:37:07