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

Azure应用健康检查监控仪表板创建KQL查询咨询

Azure监控应用健康检查仪表板KQL实现方案

这套方案可直接接入Azure Monitor仪表板,实现API、依赖服务运行状态可视化,支持灵活切换时间范围,快速感知应用整体健康情况。

核心能力覆盖

  • 同时展示API本身、下游所有依赖服务(数据库、缓存、第三方接口等)的运行状态
  • 原生适配仪表板全局时间筛选器,支持30分钟、1小时、4小时及自定义长周期时间范围切换
  • 支持从整体概览到单接口、单依赖的明细下钻,异常状态高亮提示,减少运维定位时间

可直接复用的KQL查询

1. 顶部整体健康概览查询

用于配置仪表板顶部的核心健康指标卡片,直接展示应用整体可用率、请求量、异常量:

// 自动适配仪表板所选时间范围,计算整体健康状态
let selectedTimeRange = {TimeRange:timespan};
requests
| where timestamp >= ago(selectedTimeRange)
| summarize 
    总请求量 = count(),
    异常请求量 = countif(success == false),
    整体成功率 = round(countif(success == true)*100.0/count(), 2)
| extend 健康状态 = case(
    整体成功率 >= 99.9, "健康",
    整体成功率 >= 99, "警告",
    "异常"
)

2. API接口维度健康明细查询

用于配置接口健康状态表格,快速定位异常接口:

let selectedTimeRange = {TimeRange:timespan};
requests
| where timestamp >= ago(selectedTimeRange)
| summarize 
    请求量 = count(),
    异常请求量 = countif(success == false),
    平均响应时间ms = round(avg(duration),2),
    接口成功率 = round(countif(success == true)*100.0/count(),2)
    by 接口名称 = OperationName
| extend 接口健康状态 = case(
    接口成功率 >= 99.9 and 平均响应时间ms <= 1000, "健康",
    接口成功率 >= 99 or 平均响应时间ms <= 3000, "警告",
    "异常"
)
| sort by 异常请求量 desc

3. 依赖服务健康状态查询

用于配置依赖服务监控列表,覆盖所有下游调用的健康情况:

let selectedTimeRange = {TimeRange:timespan};
dependencies
| where timestamp >= ago(selectedTimeRange)
| summarize
    调用次数 = count(),
    调用失败次数 = countif(success == false),
    平均调用延迟ms = round(avg(duration),2),
    依赖调用成功率 = round(countif(success == true)*100.0/count(),2)
    by 依赖类型 = type, 依赖服务标识 = target
| extend 依赖健康状态 = case(
    依赖调用成功率 >= 99.9 and 平均调用延迟ms <= 500, "健康",
    依赖调用成功率 >= 99 or 平均调用延迟ms <= 2000, "警告",
    "异常"
)
| sort by 调用失败次数 desc

4. 健康度趋势查询

用于配置成功率趋势折线图,直观展示健康状态随时间的变化:

let selectedTimeRange = {TimeRange:timespan};
// 根据选择的时间范围自动适配聚合粒度,保证趋势图展示流畅
let aggGrain = case(
    selectedTimeRange <= 30m, 1m,
    selectedTimeRange <= 1h, 2m,
    selectedTimeRange <= 4h, 5m,
    15m
);
requests
| where timestamp >= ago(selectedTimeRange)
| summarize 时间段成功率 = round(countif(success == true)*100.0/count(),2) by bin(timestamp, aggGrain)
| project 时间点 = timestamp, 时间段成功率

仪表板配置提示

  • 查询中的{TimeRange:timespan}是Azure Monitor仪表板的内置时间参数,配置查询时直接绑定仪表板全局时间筛选器即可,无需手动修改时间值
  • 可根据自身业务SLA调整查询中健康状态判断的成功率、响应时间阈值,匹配实际业务要求
  • 可视化组件适配建议:
    • 整体健康概览查询配状态着色的指标卡片,健康标绿、警告标黄、异常标红,放在仪表板最顶部
    • API明细、依赖服务明细查询配条件格式表格,异常行自动高亮
    • 健康趋势查询配折线图,Y轴固定为0-100的成功率区间

如果你的应用使用了自定义日志埋点,只需要把查询里的表名、字段名替换成自定义埋点对应的表和字段即可正常使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 12:54:17