如何检查 Azure 应用程序网关的当前实例数

How to check current number of instances for Azure Application Gateway

我目前有一个 Azure 应用程序网关,它配置为最少 2 个实例,最多 10 个实例。它的等级是 "WAF V2" 并且启用了自动缩放。

如果启用了自动缩放,那么理论上应该有 2 到 10 个实例。那么去哪里查看网关当前扩容到的实例数呢?如果您想了解您的网关是否过载,这似乎是重要的信息。

我认为它不会向您显示当前的实例数(如果您切换到手动,它将向您显示 properties blade 下的实例数),因为它不会感觉。这就是 autoscale 的用途,你并不真正关心有多少实例 运行,你关心的是请求 latency\failed 请求。如果您看到这些增加,您可以增加最大应用程序网关实例的数量。

Api 在启用自动缩放的情况下给出以下响应:

"sku": {
  "name": "Standard_v2",
  "tier": "Standard_v2"
},

这没有启用自动缩放:

"sku": {
  "name": "Standard_v2",
  "tier": "Standard_v2",
  "capacity": 4
},

所以我猜它隐藏在 api 之外,所以无法知道它。

微软在问了他们同样的问题后,目前已经向我指出了这个话题。 我对此的假设(可能不准确)是我查看当前容量单位指标,以查看在特定时刻有多少正在使用。因为文档说一个实例使用大约 10 个容量单位,所以我通过简单的数学运算来了解我们使用了多少个实例,以及我们是否需要增加最大值或降低最小值。

https://docs.microsoft.com/en-us/azure/application-gateway/application-gateway-autoscaling-zone-redundant

"Each capacity unit is composed of at most: 1 compute unit, or 2500 persistent connections, or 2.22-Mbps throughput."

"备注

每个实例目前可以支持大约 10 个容量单位。计算单元可以处理的请求数取决于各种标准,例如 TLS 证书密钥大小、密钥交换算法、header 重写,以及 WAF 传入请求大小。我们建议您执行应用程序测试以确定每个计算单元的请求率。容量单位和计算单位都将在计费开始前作为指标提供。"

我尝试通过日志分析获取此值。 启用它并使用此查询:

AzureDiagnostics
| where TimeGenerated > ago(30m)
    | summarize dcount(instanceId_s) by bin(TimeGenerated, 1m)

您每分钟都会根据不同的实例名称对不同的请求进行分组。考虑向查询添加一些额外的过滤器,因为您可能只对某些类型的事件感兴趣。

我认为它可以是一个很好的近似值