Splunk重命名regex返回值后如何向钻取查询传递原始token值
解决方案
核心思路是保留原始错误字段不修改,新增独立的友好展示名字段,可视化展示、钻取标题用友好名,钻取查询传原始值执行,互不冲突。
1. 修改主面板查询语句
新增display_error字段做错误名映射,统计时同时保留原始error字段和友好展示字段:
someSearchQuery | rex "someTerm(?<error>.*)" # 配置错误名映射规则,未匹配到的错误保留原始名兜底 | eval display_error = case( error == "ID not found", "Data_error", error == "connection refused", "Network_error", error == "permission denied", "Auth_error", 1==1, error ) | stats count by error, display_error | sort - count | head 10
配置主面板柱状图的X轴字段为display_error,此时图表展示的就是友好通用名称。
2. 修改钻取token配置
通过$row.字段名$取同一行的原始错误值和友好展示值,分别存为不同token:
<drilldown> <set token="show_panel">true</set> <!-- 存友好名用于标题展示 --> <set token="selected_display_name">$row.display_error$</set> <!-- 存原始错误值用于钻取查询 --> <set token="selected_raw_error">$row.error$</set> </drilldown>
3. 修改钻取面板逻辑
- 面板标题改为使用展示用token:
<title>$selected_display_name$</title> - 钻取查询使用原始错误值过滤:
someSearchQuery | rex "someTerm(?<error>.*)" | search error="$selected_raw_error$" | timechart count by errorType span="1m" | addcoltotals | rename NULL as count
如果需要钻取面板里的错误名也展示通用名称,在钻取查询的rex步骤后同样加上第一步的eval display_error映射规则即可。
内容的提问来源于stack exchange,提问作者nsingh
相关产品推荐
相关产品推荐

