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

Splunk如何基于下拉选择为仪表盘编写自定义动态搜索查询

解决方案

你这个需求完全可以通过Splunk自带的case函数结合下拉选择器的令牌实现,以下是具体实现步骤:

步骤1:确认下拉选择器的令牌命名

首先给两个下拉选择器配置令牌名,建议命名规则如下:

  • 应用选择器的令牌设为$app_name$,可选值的实际输出值对应App1、App2
  • 日志类型选择器的令牌设为$log_type$,可选值的实际输出值对应Detailed、App_specific

步骤2:编写动态搜索语句

直接在搜索面板的查询框里使用以下语句即可覆盖所有场景:

index=$app_name$ 
[| makeresults 
| eval filter=case("$log_type$"=="Detailed", "", 
                   "$app_name$"=="App1" AND "$log_type$"=="App_specific", "\"taskExecutor-1\"", 
                   "$app_name$"=="App2" AND "$log_type$"=="App_specific", "\"ool-44-thread-1\"") 
| return $filter ]
| sort -_time 
| table msg

语句逻辑说明

  • 开头的index=$app_name$直接读取选中的应用名,先过滤对应索引的日志
  • 中括号内的子搜索会根据两个下拉框的选择动态生成过滤条件:
    • 当日志类型选Detailed时,返回空值,不会追加额外过滤条件
    • 当选中App1+App_specific时,返回"taskExecutor-1"作为过滤条件
    • 当选中App2+App_specific时,返回"ool-44-thread-1"作为过滤条件
  • 后续排序、字段输出逻辑和你原需求完全一致

备选简化方案

你也可以直接在下拉选择器的配置里加联动令牌,不需要在搜索语句里写判断逻辑:
给日志类型的每个选项配置额外的令牌$extra_filter$:

  • 选Detailed时,$extra_filter$的值设为空
  • 选App_specific时,根据应用选择器的联动结果赋值:App1对应值为"taskExecutor-1",App2对应值为"ool-44-thread-1"

配置完成后搜索语句可以简化为:

index=$app_name$ $extra_filter$ | sort -_time | table msg

该方案配置更简单,搜索运行效率也更高。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:06:03