如何在Splunk仪表板中对比两个年份数据集并按条件高亮单元格?
问题解决:Splunk 跨年份食品数据对比及单元格高亮
以下是修正后的完整仪表板代码,实现了跨年份数据对比及指定条件的单元格高亮功能:
<form version="1.1" theme="dark"> <label>食品数据对比</label> <description>跨年份产量与品质对比表</description> <fieldset submitButton="false"> <input type="dropdown" token="curYr"> <label>当前年份</label> <fieldForLabel>time</fieldForLabel> <fieldForValue>time</fieldForValue> <search> <query>index=FOOD_DB | dedup time | sort time | table time</query> </search> </input> <input type="dropdown" token="compYr"> <label>对比年份</label> <fieldForLabel>time</fieldForLabel> <fieldForValue>time</fieldForValue> <search> <query>index=FOOD_DB | dedup time | sort time | table time</query> </search> </input> </fieldset> <row> <panel> <title>数据对比视图</title> <table> <option name="count">15</option> <search> <query> index=FOOD_DB (time=$curYr$ OR time=$compYr$) | eval prod_name = json_array_to_mv(json_keys(_raw)) | eval prod_name = mvfilter(NOT match(prod_name, "uploadedBy")) | mvexpand prod_name | eval data = json_extract(_raw, prod_name) | eval prod_rate = tonumber(json_extract(data, "prod_rate")), prod_qual = json_extract(data, "prod_qual") | eval year_group = if(time="$curYr$", "current", "comparing") | fields prod_name, prod_rate, prod_qual, year_group | xyseries prod_name, year_group, prod_rate prod_qual | rename current_prod_rate as 当前产量, comparing_prod_rate as 对比产量, current_prod_qual as 当前品质, comparing_prod_qual as 对比品质 </query> </search> <format type="color" field="当前产量"> <colorPalette type="expression"> if($row.当前产量$ > $row.对比产量$, "#65A637", if($row.当前产量$ < $row.对比产量$, "#FF0000", "")) </colorPalette> </format> <format type="color" field="当前品质"> <colorPalette type="expression"> if($row.当前品质$ != $row.对比品质$, "#FFFF00", "") </colorPalette> </format> </table> </panel> </row> </form>
关键修改说明:
下拉菜单优化:
- 将两个下拉菜单合并到同一个字段集,提升界面紧凑性
- 使用
dedup替代原stats values逻辑,高效获取唯一年份列表
跨年份数据合并:
- 主搜索同时拉取当前年份和对比年份的数据,通过
year_group标记数据归属 - 使用
xyseries将同一产品的两年数据合并到同一行,实现同维度对比
- 主搜索同时拉取当前年份和对比年份的数据,通过
数值类型转换:
- 通过
tonumber将prod_rate转换为数值类型,避免字符串比较导致的错误
- 通过
动态高亮逻辑:
- 利用
$row.字段名$引用同行其他字段值,实现动态对比高亮 - 产量对比:当前年份大于对比年份显示绿色,小于则显示红色
- 品质对比:与对比年份不一致时显示黄色
- 利用
内容的提问来源于stack exchange,提问作者A.G.Progm.Enthusiast
相关产品推荐
相关产品推荐

