gpt4 book ai didi

azure - 如何停止从 Azure Functions 中的特定函数发送遥测数据?

转载 作者:行者123 更新时间:2023-12-04 15:37:51 32 4
gpt4 key购买 nike

在我的函数应用程序 (v2) 中,我有一个函数probe,用于测试应用程序的运行状况,每隔几秒调用一次。我想停止将该特定函数的任何内容记录到 Application Insights。

函数probe看起来像这样:

using System;
using System.IO;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
using Newtonsoft.Json;

using MyApp.Api.Hello;

namespace MyApp.Api
{
public static class HealthFunctions
{
[FunctionName("probe")]
public static IActionResult Probe(
[HttpTriggerAttribute(AuthorizationLevel.Anonymous, "get")] HttpRequest request,
ILogger logger)
{
return new OkResult();
}
}
}

和host.json:

{
"version": "2.0",
"extensions": {
"http": {
"routePrefix": ""
}
},
"logging": {
"logLevel": {
"Function.probe": "Error",
"default": "Trace"
}
}
}

但是,我仍然在 Application Insights 中看到通过调用/probe 发送的遥测数据:

Application Insights Screenshot

我做错了什么?

最佳答案

12/09 更新:

是的,您的评论是正确的,仍然有一些关于它的消息可以登录到应用程序洞察中。但是由 log.LogInformation() 方法记录的任何消息都不应该写入应用程序洞察中。

我发现另一种方法可以避免它,您可以为所有其他功能应用程序指定日志级别;但对于您不想记录到应用程序见解的函数应用程序,请勿为其指定日志级别。然后你可以将默认指定为,这样就可以完全避免这个函数应用登录应用洞察。

这是一个例子:

我有 3 个函数应用,并且我不希望名为 HttpTrigger1 的函数登录应用程序洞察。因此,在 host.json 中,我将其他 2 个函数应用的 loglevel 指定为 Trace:BlobTrigger1QueueTrigger1 。并将默认设置为

我这边的host.json:

{
"version": "2.0",
"extensions": {
"http": {
"routePrefix": ""
}
},
"logging": {
"logLevel": {
"Function.BlobTrigger1": "Trace",
"Function.QueueTrigger1": "Trace",
"default": "None"
}
}
}

截图:

enter image description here

它按预期工作,“HttpTrigger1”中的日志不会写入 Application Insights。

<小时/>

要禁用从特定 azure 函数记录到应用程序见解的日志记录,您可以在 host.json 中将该 azure 函数的 logLevel 指定为 None(在您的情况下,它是 probe)强>)。示例 host.json 如下所示:

{
"version": "2.0",
"extensions": {
"http": {
"routePrefix": ""
}
},
"logging": {
"logLevel": {
"Function.probe": "None",
"default": "Trace"
}
}
}

那么只有名为“probe”的函数无法将数据发送到应用程序洞察。

这里有一点你应该注意,在指定的azure function -> Monitor中,创建了一个空日志(见下面的截图),这个“空日志”意味着没有日志写入application Insights(你可以只需在 Application Insights 中编写一个查询来确认这一点。我使用日志查询对其进行了测试,在 Application Insights 中没有显示该指定 Azure 函数的日志。

enter image description here

关于azure - 如何停止从 Azure Functions 中的特定函数发送遥测数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59131420/

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