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

如何在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>

关键修改说明:

  1. 下拉菜单优化:

    • 将两个下拉菜单合并到同一个字段集,提升界面紧凑性
    • 使用dedup替代原stats values逻辑,高效获取唯一年份列表
  2. 跨年份数据合并:

    • 主搜索同时拉取当前年份和对比年份的数据,通过year_group标记数据归属
    • 使用xyseries将同一产品的两年数据合并到同一行,实现同维度对比
  3. 数值类型转换:

    • 通过tonumber将prod_rate转换为数值类型,避免字符串比较导致的错误
  4. 动态高亮逻辑:

    • 利用$row.字段名$引用同行其他字段值,实现动态对比高亮
    • 产量对比:当前年份大于对比年份显示绿色,小于则显示红色
    • 品质对比:与对比年份不一致时显示黄色

内容的提问来源于stack exchange,提问作者A.G.Progm.Enthusiast

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 23:43:13