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

如何在Grafana的KQL日志查询中使用查询变量

在Grafana的KQL日志查询中使用变量的实操指南

1. 定义并使用查询变量的完整流程

1.1 创建查询变量

  • 打开目标仪表盘,点击顶部「设置」图标 → 选择「变量」→ 点击「添加变量」
  • 变量类型选「查询」,数据源选择你的KQL兼容数据源(如Azure Monitor、Elasticsearch)
  • 在「查询」输入框中编写KQL语句生成动态选项,比如获取所有服务名称:
    AppLogs | distinct ServiceName
    
  • 按需设置「刷新」时机(比如「仪表盘加载时」或「变量值变化时」),最后保存变量(示例变量名:serviceName)

1.2 KQL查询中引用变量的语法

直接用$变量名嵌入KQL语句,Grafana会自动处理类型适配:

  • 单值变量场景:
    AppLogs | where ServiceName == $serviceName | summarize 请求量=count() by TimeGenerated bin 5m
    
  • 多值变量场景(开启变量多选后):
    AppLogs | where ServiceName in ($serviceName) | summarize 请求量=count() by TimeGenerated bin 5m
    

2. 确保变量值实时正确传递的关键要点

  • 类型匹配校验:确认变量值的类型和KQL查询中对应字段的类型一致(比如都是字符串类型),避免类型不匹配导致查询失败
  • 启用全选选项:如果需要支持「全选」,在变量设置里勾选「Include all option」,此时Grafana会自动把变量替换为dynamic(["值1","值2"...]),完美适配in操作符
  • 预览替换结果:在查询编辑器中点击「预览」,查看Grafana实际生成的KQL语句,确认变量值是否正确代入
  • 配置联动刷新:如果变量依赖其他变量(比如日志级别依赖服务名称),将依赖变量的「刷新」设置为「变量值变化时」,确保选项实时更新

联动变量示例

  1. 创建第一个变量serviceName,查询语句:AppLogs | distinct ServiceName
  2. 创建第二个变量logLevel,查询语句:AppLogs | where ServiceName == $serviceName | distinct LogLevel,设置刷新时机为「变量值变化时」
  3. 最终KQL查询:
AppLogs | where ServiceName == $serviceName and LogLevel == $logLevel | summarize 错误数=count() by TimeGenerated bin 10m

选择不同服务时,日志级别选项会自动更新,查询也会实时代入最新变量值执行。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 20:32:46