gpt4 book ai didi

google-cloud-functions - 如何用谷歌云监控监控云函数错误率?

转载 作者:行者123 更新时间:2023-12-04 15:08:44 26 4
gpt4 key购买 nike

当云函数在 30 分钟内为超过 90% 的执行返回非 OK 状态代码时,我希望收到警报。

我要过滤的系列是 cloudfunctions.googleapis.com/function/execution_count。在所有记录中,我想计算那些满足 metric.status != 'ok' 的记录。如果过去 30 分钟内所有记录的 90% 满足此条件,我想发出警报。

我查看了 Google Cloud 的监控查询语言文档并找到了有关比率的部分:https://cloud.google.com/monitoring/mql/examples#qlx-ratio-ratio

这是我写条件的方式:

fetch cloud_function
| metric 'cloudfunctions.googleapis.com/function/execution_count'
| { filter metric.status != 'ok'
; ident }
| group_by [resource.function_name]
| ratio
| window 30m
| condition ratio >= 0.9 '1'

它似乎有效,图表显示了正确的值。但是,似乎只要函数返回错误代码,就会发出警报,即使还有其他成功的执行来弥补问题。

例如,这是发出警报时的指标图表,我在“监控”>“警报”>(单击事件部分中的最后一个警报)中获得 graph at the time of the incident

警报中报告的函数是 processPurchase

有什么我遗漏的东西可能会导致这个问题吗?查看图表,似乎不应触发警报。然而,我有关于警报的事件和通知。几分钟后解决。

最佳答案

我认为 ratio 不是您的最佳选择,因为 ratio 计算两个对齐输入表的值列的比率。

我想你可以试试下面的代码:

fetch cloud_function
| metric 'cloudfunctions.googleapis.com/function/execution_count'
| align rate(30m)
| every 30m
| group_by [metric.status],
[value_execution_count_percentile: percentile(value.execution_count, 90)]

如您所见,我使用了相同的指标 cloudfunctions.googleapis.com/function/execution_count但是使用 30 分钟的周期和 90% 的百分比而不是条件比率。

编辑1

我创建了一个简单的云函数来生成随机错误,

import random
def hello_world(request):
request_json = request.get_json()
x = random.randint(1,2)
if x%2 ==0:
raise NameError("my error x.x")
else:
return f'Hello World!'

然后我使用您发布的指标作为基础来生成我的指标:

fetch cloud_function
| metric 'cloudfunctions.googleapis.com/function/execution_count'
| { t_0:
filter metric.status != 'ok'
| align delta()
| group_by [resource.function_name],
[value_execution_count_aggregate: aggregate(value.execution_count)]
; t_1:
ident
| align delta()
| group_by [resource.function_name],
[value_execution_count_aggregate: aggregate(value.execution_count)] }
| ratio
| window 5m
| condition ratio >= 0.5 '1'

enter image description here

我只是将比率移动到 ratio >= 0.5 '1' 而不是 0.9,并将窗口减小到 5m,以免整天都在获取数据。

但在我的警报配置中,我使用了:如果所有时间序列都违反,则条件触发在查询编辑器中使用条件运算符编辑阈值 = 5

enter image description here

使用此配置,我只会在条件满足时收到警报,而不是在函数返回错误代码时立即收到警报。

关于google-cloud-functions - 如何用谷歌云监控监控云函数错误率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65617605/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com