如何通过Azure Application Gateway获取Azure AKS的响应时间指标(如TTFB)
解决方案:通过Azure Application Gateway获取AKS的响应时间指标
一、直接从Application Gateway提取目标指标
Azure Application Gateway原生收集首字节时间(TTFB)、**末字节时间(TTLB)**相关维度数据,无需额外接入AKS集群即可获取:
- 核心指标:
ApplicationGatewayRequestDuration(覆盖从请求进入网关到响应完全发送的全链路时长) - 关键维度拆解:
BackendResponseLatency:AKS后端Pod处理请求并返回第一个字节的耗时,对应TTFB的核心计算值TotalRequestDuration:请求从进入网关到响应全部发送完成的总时长,结合BackendResponseLatency可推导TTLB(总时长减去后端处理前的网关耗时)
二、用Azure Monitor Workbooks查询可视化
通过Workbooks编写自定义Kusto查询,可快速聚合、展示这些指标,示例语句如下:
AzureMetrics | where ResourceProvider == "Microsoft.Network/applicationGateways" | where MetricName == "ApplicationGatewayRequestDuration" | where TimeGenerated > ago(24h) | extend TTFB = toreal(Properties.BackendResponseLatency) / 1000 // 转换为秒级单位 | extend TTLB = toreal(TotalValue) / 1000 // TotalValue为总请求时长(毫秒) | summarize avg(TTFB), avg(TTLB) by bin(TimeGenerated, 5m), Resource // 按5分钟粒度聚合 | render timechart
你可根据需求调整时间范围、聚合粒度,或添加BackendPoolName等维度筛选特定AKS服务的指标。
三、可选:将指标关联至AKS集群视图
若需在AKS监控仪表盘中统一查看这些指标,可按以下步骤配置:
- 在Application Gateway的诊断设置中,将指标发送至AKS使用的Log Analytics工作区
- 在AKS监控仪表盘中添加自定义图表,通过Kusto查询关联网关指标与AKS日志(如
ContainerLog),实现Pod级别的响应时间分析
注意事项
- 需确保Application Gateway已启用诊断日志与指标收集,否则无法获取相关数据
BackendResponseLatency仅统计AKS后端的处理耗时,网关到客户端的传输耗时需结合TotalRequestDuration计算
内容的提问来源于stack exchange,提问作者Vedha Sankar
相关产品推荐
相关产品推荐

