小编Gav*_*n H的帖子

在 Azure Durable Functions Orchestator 中使用异步辅助函数是否安全?

我试图Non-Deterministic workflow detected: TaskScheduledEvent: 0 TaskScheduled ...在我们的持久功能项目中追踪一些偶然的错误。这种情况很少见(10,000 次左右的情况下为 3 次)。

将协调器代码与此处记录的约束进行比较时,我们使用了一种我不清楚的模式。为了使编排器代码更干净/可读,我们使用一些私有的异步辅助函数来进行实际CallActivityWithRetryAsync调用,有时包装在异常处理程序中以进行日志记录,然后await在此辅助函数上使用主编排器函数。

类似这个简化示例的东西:

[FunctionName(Name)]
public static async Task RunPipelineAsync(
    [OrchestrationTrigger]
    DurableOrchestrationContextBase context,

    ILogger log)
{
    // other steps

    await WriteStatusAsync(context, "Started", log);

    // other steps

    await WriteStatusAsync(context, "Completed", log);
}

private static async Task WriteStatusAsync(
    DurableOrchestrationContextBase context,
    string status,
    ILogger log
)
{
    log.LogInformationOnce(context, "log message...");
    try
    {
        var request = new WriteAppDocumentStatusRequest 
        {
            //...
        };

        await context.CallActivityWithRetryAsync(
            "WriteAppStatus",
            RetryPolicy,
            request
        );
    } …
Run Code Online (Sandbox Code Playgroud)

azure azure-functions azure-durable-functions

9
推荐指数
1
解决办法
1089
查看次数

Azure Functions“失败”指标上的 Azure 警报正在触发,没有明显的故障

我希望在某个函数应用程序失败时触发 Azure 警报。我将其设置为 [函数名称] 失败指标上的 GTE 1 阈值,认为这将产生预期结果。但是,当它每天运行时,我会收到警报已触发的通知,但我在 Application Insights 中找不到任何指示失败的内容,并且它似乎正在成功运行并完成。

以下是触发的警报摘要:

在此输入图像描述

以下是来自门户的调用监控,显示过去几天相同的功能,没有出现任何故障:

在此输入图像描述

以下是该时间段内的应用程序洞察搜索,显示没有异常以及所有成功的依赖项操作:

在此输入图像描述

问题是 - 什么可能导致 Azure Function Failed 指标在 Application Insights 中注册非零值而没有任何遥测?

更新 - 这是警报配置

在此输入图像描述

以及具体的条件设置——

在此输入图像描述

更宽时间范围的故障刀片:

在此输入图像描述

Blob 404 上存在一些依赖项失败,但我认为这是来自另一个函数,该函数显式检查路径中是否存在 Blob,以了解要从外部源下载哪些文件。此外,时间戳不属于采样周期。

在此输入图像描述

没有例外:

在此输入图像描述

azure azure-application-insights azure-functions azure-alerts

4
推荐指数
1
解决办法
1341
查看次数