我正在尝试在 GCP 中为 Kubernetes
集群中托管的应用程序创建一些警报策略。
我们有一个云负载均衡器为流量提供服务,我可以看到 HTTP 状态代码,例如 2XX
、5XX
等。
我需要根据错误百分比而不是绝对值(如 ((NumberOfFailures/Total) * 100)
)创建一些警报策略,以便如果我的错误百分比高于 50%,则触发警报。
我在谷歌文档中找不到任何内容。它只是告诉您使用 counter
,就像使用绝对值一样。我正在寻找类似的情况,如果失败率
在 15 分钟的滚动窗口内超过 50%,则触发警报。
是否可以在 GCP
中本地执行此操作?
最佳答案
是的,我认为 MQL 是可能的。我最近创建了与您的用例类似的东西。
fetch api
| metric 'serviceruntime.googleapis.com/api/request_count'
| filter
(resource.service == 'my-service.com')
| group_by 10m, [value_request_count_aggregate: aggregate(value.request_count)]
| every 10m
| { group_by [metric.response_code_class],
[response_code_count_aggregate: aggregate(value_request_count_aggregate)]
| filter (metric.response_code_class = '5xx')
; group_by [],
[value_request_count_aggregate_aggregate:
aggregate(value_request_count_aggregate)] }
| join
| value [response_code_ratio: val(0) / val(1)]
| condition gt(val(), 0.1)
在此示例中,我使用服务 my-service.com 的请求计数。我正在汇总过去 10 分钟内的请求计数以及响应代码为 5xx 的响应。此外,我正在聚契约(Contract)一时间段内的请求计数,但所有响应代码。然后在最后两行中,我计算 5xx 状态代码的数量与所有响应代码的数量的比率。最后,我创建一个 bool 值,当比率高于 0.1 时该值为 true,并且我可以用它来触发警报。
我希望这能让您大致了解如何根据百分比创建自己的警报策略。
关于google-cloud-platform - 基于百分比的 GCP 提醒政策,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72460432/