在 AWS Cloudwatch Dashboard 上准确绘制 ALB RequestPerCountPerTarget

Drawing ALB RequestPerCountPerTarget accurately on AWS Cloudwatch Dashboard

AWS ALB 目标组有一个指标 "RequestCountPerTarget" 乍一看似乎非常有趣。然而,这个指标似乎只在指标的完整详细视图上准确显示,当它与 CloudWatch 仪表板上的其他指标一起出现时,它就完全搞砸了。

当我配置指标时,我有这个,这是对我最有用的正确的,即。单个服务器每分钟接收的请求数

使用此图,我可以快速确定我的应用程序是否过载:从我服务器的平均响应率,我可以推断出单个服务器可以承受的最大 RPM(每分钟请求数)(恰好在我的例子中大约是 200 RPM/server)

但是,在 CloudWatch 仪表板上,此指标显示如下

如果我的理解是正确的,AWS CloudWatch 仪表板使用插值以避免请求许多数据点,但在这种情况下,插值似乎在做什么,并不是要 在仪表板期间(屏幕截图中为 1 周)的 "RequestCountPerTarget during 1min" 的平均值 ,但在仪表板期间 "RequestCountPerTarget during 1min" 的 sum,这完全破坏了指标的目的:我不关心 1 周内收到的请求总数(因为如果这些请求在时间范围内均匀分布,这对我的服务器来说基本上没有任何意义),但我确实关心1 周内 1 分钟内收到的平均最大请求数(因为这将反映实际请求峰值)。

有办法解决这个问题吗?

在您的第一个图表中,您将周期设置为 1 分钟,CloudWatch 尊重这一点。

当您将该图表放在仪表板上并更改仪表板的时间范围时,CloudWatch 将调整周期以使仪表板加载更快。

您可以通过打开仪表板顶部的 Actions -> Period 并将值从 Auto 更改为 Do not override 来更改该行为。这将使仪表板尊重您在图表上设置的时间段。

要使更改永久生效,请转到 Actions -> View/edit source 并将 "periodOverride": "inherit" 放在小部件列表上方(确保保存仪表板,不会自动保存...)。

{
    "periodOverride": "inherit",
    "widgets": ...
}

更多信息: