我应该为警报 HTTPCode_Target_5XX_Count 或 HTTPCode_ELB_5XX_Count 使用哪些指标?
Which metrics should I use for an alarm HTTPCode_Target_5XX_Count or HTTPCode_ELB_5XX_Count?
我有一个只有一个目标组的 ALB(这是一个 istio-ingress 网关),我想捕获一个场景,其中任何请求都路由到这个目标组 returns 5XX 代码。
根据文档:
HTTPCode_ELB_5XX_Count:
The number of HTTP 5XX server error codes that originate from the load balancer. This count does not include any response codes generated by the targets.
HTTPCode_Target_5XX_Count:
The number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer.
我想因为这是一个单一的目标群体,所以他们应该是相同的,但显然他们不是,因为在特定的时间范围内,我看到一些 HTTP 4XX 的数据,但 none ELB 4XX 的数据。有什么不同?我应该使用哪一个?
我想这取决于你想要得到的结果。因为这些错误适用于不同的细分市场。
第一个选项(HTTPCode_ELB_5XX_Count) returns 触摸elb本身时产生的错误。当由于某种原因它无法将您的流量重定向到目标组时。我相信这意味着 AWS 问题或配置问题。
在第二种情况下,它 returns 来自目标组中的服务的错误。
我觉得这两部都值得一看。但我认为您会更关心第二种类型的 5xx 错误。
我认为图表有助于解释差异。用户向您的后端发送请求后,您的后端会执行以下操作将响应发送回用户:
Targets (e.g. EC2) -(1)-> ALB -(2)-> user
HTTPCode_Target_5XX_Count
测量 (1)
中 5XX 响应的数量
HTTPCode_ELB_5XX_Count
测量 (2)
中 5XX 响应的数量
注意:Target_5XX
始终包含在 ELB_5XX
中,因为 ALB 将错误转发给客户端。您可以找到有关 ELB_5XX
而非 Target_5XX
here.
的更多详细信息
注意:Target_5XX
和ELB_5XX
是互斥的。 ELB_5XX
计数不包括目标生成的任何响应代码。 [source]
感谢 Omar Kacimi 的更正!
来自@jellycsc 的图表在概念上是正确的。然而,根据:https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html。这些指标是互斥的。即 HTTPCode_ELB_4XX_Count 是来自负载均衡器的仅 4xx 响应代码的计数,而不是目标,例如,以防负载均衡器也不知道将请求转发到哪里。同样,HTTPCode_Target_4XX_Count 仅表示来自目标组的 4xx 响应的计数,而不是负载均衡器的计数。
我有一个只有一个目标组的 ALB(这是一个 istio-ingress 网关),我想捕获一个场景,其中任何请求都路由到这个目标组 returns 5XX 代码。
根据文档:
HTTPCode_ELB_5XX_Count:
The number of HTTP 5XX server error codes that originate from the load balancer. This count does not include any response codes generated by the targets.
HTTPCode_Target_5XX_Count:
The number of HTTP response codes generated by the targets. This does not include any response codes generated by the load balancer.
我想因为这是一个单一的目标群体,所以他们应该是相同的,但显然他们不是,因为在特定的时间范围内,我看到一些 HTTP 4XX 的数据,但 none ELB 4XX 的数据。有什么不同?我应该使用哪一个?
我想这取决于你想要得到的结果。因为这些错误适用于不同的细分市场。
第一个选项(HTTPCode_ELB_5XX_Count) returns 触摸elb本身时产生的错误。当由于某种原因它无法将您的流量重定向到目标组时。我相信这意味着 AWS 问题或配置问题。
在第二种情况下,它 returns 来自目标组中的服务的错误。
我觉得这两部都值得一看。但我认为您会更关心第二种类型的 5xx 错误。
我认为图表有助于解释差异。用户向您的后端发送请求后,您的后端会执行以下操作将响应发送回用户:
Targets (e.g. EC2) -(1)-> ALB -(2)-> user
HTTPCode_Target_5XX_Count
测量 (1)
HTTPCode_ELB_5XX_Count
测量 (2)
注意:Target_5XX
始终包含在 ELB_5XX
中,因为 ALB 将错误转发给客户端。您可以找到有关 ELB_5XX
而非 Target_5XX
here.
注意:Target_5XX
和ELB_5XX
是互斥的。 ELB_5XX
计数不包括目标生成的任何响应代码。 [source]
感谢 Omar Kacimi 的更正!
来自@jellycsc 的图表在概念上是正确的。然而,根据:https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-cloudwatch-metrics.html。这些指标是互斥的。即 HTTPCode_ELB_4XX_Count 是来自负载均衡器的仅 4xx 响应代码的计数,而不是目标,例如,以防负载均衡器也不知道将请求转发到哪里。同样,HTTPCode_Target_4XX_Count 仅表示来自目标组的 4xx 响应的计数,而不是负载均衡器的计数。