0

我有一个问题,即在执行 azure 函数时会触发 azure 警报。我查看了不同的文档,查看了警报规则,查看了代码,但似乎我无法指出问题所在。你们可以检查一下我错过了什么吗?

警报的条件如下:

                "criteria": {
                "odata.type": "Microsoft.Azure.Monitor.SingleResourceMultipleMetricCriteria",
                "allOf": [
                    {
                        "name": "1st criterion",
                        "metricName": "<functionName> Failures",
                        "metricNamespace": "Azure.ApplicationInsights",
                        "dimensions": [
                        ],
                        "operator": "GreaterThan",
                        "threshold": "0",
                        "monitorTemplateType": "8",
                        "criterionType": "StaticThresholdCriterion",
                        "timeAggregation": "PT1M",
                        "skipMetricValidation": true
                    }
                ]
            },
            "autoMitigate": true,

代码的相关部分:

module.exports = async function (context, req) {
try{
let res = await apicall();
            response = {
                status: 200, /* Defaults to 200 */
                body: res
            }
}catch(error){
        response = {
            status: 500, /* Defaults to 500 */
            body: errorHandler(error)
        };
        errorObj = error
}finally{
        if (response.status == 200) {
            context.done(null, response)
        } else {
            context.done(errorObj, response)
        }
} 
}

编辑 ,按照评论中的要求,这里是它的图片。 在此处输入图像描述

并成功执行:

在此处输入图像描述

4

1 回答 1

1

如果你的 azure 函数与 Application Insights 相关联,那么我建议你可以使用Custom log search(你可以参考这篇文章。)。

这种信号的好处是应用洞察查询将显示我们需要的确切结果,并且我们清楚地知道逻辑。但是对于预定义的信号,我们并不清楚它在 becend 中的逻辑。

请试一试,如果有任何问题,请告诉我。

于 2020-07-23T01:27:32.503 回答