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

Grafana 7.15中如何用site变量过滤ElasticSearch JSON查询的id变量

解决Grafana动态变量关联ElasticSearch查询的问题

针对你的需求——在生成id动态变量的JSON查询中引用site变量,筛选出包含site值的id(比如site=TORT时匹配LR_TORT_2354),可以用以下两种实用方式实现:

方式1:通配符模糊匹配(wildcard查询)

在Grafana的变量查询框中,输入以下JSON查询:

{
  "size": 0,
  "aggs": {
    "id_values": {
      "terms": {
        "field": "id",
        "size": 1000
      }
    }
  },
  "query": {
    "wildcard": {
      "id": "*${site}*"
    }
  }
}
  • 逻辑:wildcard查询会匹配id字段中任意位置包含site变量值的内容,*作为通配符代表任意字符(包括空字符)。
  • 适配性:因为id是keyword类型,该查询可直接生效,无需额外字段处理。

方式2:精确子串匹配(match_phrase查询)

如果需要更严格的子串匹配(避免无关字符误匹配),可以使用match_phrase:

{
  "size": 0,
  "aggs": {
    "id_values": {
      "terms": {
        "field": "id",
        "size": 1000
      }
    }
  },
  "query": {
    "match_phrase": {
      "id": "${site}"
    }
  }
}
  • 逻辑:match_phrase会精确匹配id字段中包含完整site变量值的条目,完全适配你的示例场景(TORT作为完整子串存在于id中)。

配置注意事项

  • 确保site变量已正确创建,类型为查询变量或自定义变量,能正常输出有效值。
  • 在id变量的设置中,数据源选择你的ElasticSearch实例,查询类型选JSON,再粘贴上述查询内容。
  • 若需调整返回的id数量,修改aggs.terms.size的值(默认值可能较小,按需调大即可)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:15:04