如何在Azure Monitor的KQL图表中添加客户端下拉筛选器
Azure Application Insights 带筛选的单张处理器性能监控图表实现方案
直接使用Azure Monitor工作簿的参数下拉能力配合优化后的KQL即可实现,不需要维护多份独立图表,操作步骤如下:
- 打开目标Application Insights资源,进入「工作簿」板块新建空白工作簿。
- 先添加一个下拉选择器参数,参数名设置为
CustomerFilter,参数项配置3个单选选项:- 默认选中项:显示名「全部客户」,参数值
All - 选项1:显示名「客户B」,参数值
B - 选项2:显示名「客户C」,参数值
C
注意:参数名必须严格填写为CustomerFilter,和KQL语句中的引用名保持一致,否则筛选功能无法正常生效
- 默认选中项:显示名「全部客户」,参数值
- 添加时间图表控件,将原有KQL替换为以下语句,直接对接刚才创建的筛选参数:
Perf | extend Customer = iif(Computer in ("X", "Y"), "B", "C") | where CounterName == "% Processor Time" and ObjectName == "Processor" and Computer contains "SQL" // 匹配筛选参数:选全部时返回全量数据,选指定客户时仅返回对应客户数据 | where Customer == @CustomerFilter or @CustomerFilter == "All" | summarize AvgProcessorPct = avg(CounterValue) by bin(TimeGenerated, 5min), Customer | render timechart
原查询存在注释与实际配置不一致的问题:注释标注时间粒度为15分钟,但实际bin函数配置的是5分钟粒度。如果需要调整为15分钟粒度,将语句中
bin(TimeGenerated, 5min)修改为bin(TimeGenerated, 15min)即可。
- 保存工作簿后即可直接使用:
- 默认加载时展示所有含SQL标识服务器的处理器平均使用率时间曲线,和原有合并图表效果一致
- 通过顶部下拉框选择对应客户,图表会自动过滤仅展示该客户归属服务器的性能数据
- 后续如果有服务器归属变更,只需要修改
extend Customer行的判断规则,所有筛选逻辑会自动同步生效,不需要重复调整多份查询。
内容的提问来源于stack exchange,提问作者Symon Turner
相关产品推荐
相关产品推荐

