Azure应用程序网关性能指标的获取与分析
一、 Azure应用程序网关性能指标分析
为了让管理员能及时获知应用程序网关的运行状态,并针对此种情况制定通知策略,实现对AppGW诊断日志的自动分析、监控和告警等。本文主要介绍基于Log Analytics对应用程序网关运行状态的监控及预警的部署方法。目前Global Azure的应用程序网关已经具备针对Metrics的监控参数做告警:
- Metric:
- Alert:
中国区Azure目前此功能还未上线,但是已经有替代方法,即在应用程序网关中的诊断设置中配置为将日志发送至Log Analytics:
再在Log analytics workspaces中添加一个workspace,在Logs中可以通过query语句来查询指定日志中的字段:
二、 常用Log analytics查询语句
Log analytics workspaces中可以为日常运维保存常用查询语句,更加便捷地了解应用程序网关的状态。这里列出一些常用的查询语句:
Avg Latency (ms) by AppGW
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayPerformanceLog"
| summarize avg(latency_d) by Resource, bin(TimeGenerated, 1m)
| render timechart
Failed requests by API
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayAccessLog"
| where httpStatus_d >= 400
| summarize count() by requestUri_s, bin(TimeGenerated, 1m)
| render timechart
Avg Requests per min
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayPerformanceLog"
| summarize avg(requestCount_d) by Resource, bin(TimeGenerated, 1m)
| render timechart
Avg Failed Requests per min
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayPerformanceLog"
| summarize avg(failedRequestCount_d) by Resource, bin(TimeGenerated, 1m)
| render timechart
Avg throughput per min (Mb)
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayPerformanceLog"
| summarize avg(throughput_d) by Resource, bin(TimeGenerated, 1m)
| extend ThroughputMb = (avg_throughput_d/1000)/1000
| project Resource, TimeGenerated, ThroughputMb
| render timechart
Unhealthy backend VM count
AzureDiagnostics
| where ResourceProvider == "MICROSOFT.NETWORK" and Category == "ApplicationGatewayPerformanceLog"
| summarize max(unHealthyHostCount_d) by Resource, bin(TimeGenerated, 1m)
| render timechart
同样,我们可以根据查询结果配置告警触发规则,可以达到与Global Azure 应用程序网关内的报警一样的效果:
告警手段包含,短信,邮件,webhook,Automation Runbook等等,或可以进一步触发Runbook中的脚本来实现纵向和横向扩容。
管理员可根据如上工具,或其他日志分析工具有效监控应用程序网关,从而及时做出扩容的动作,以免进一步影响业务。具体场景下日志分析工具的应用可参考文档:应用程序网关常见问题场景的分析。