gpt4 book ai didi

c# - 使用 Azure Function v2 自定义 Application Insight TelemetryInitializer

转载 作者:太空宇宙 更新时间:2023-11-03 12:07:03 24 4
gpt4 key购买 nike

在 Azure 函数中,我们使用 .NET HttpClient 类、Azure Servicebus SDK 和 Azure 存储 SDK 发出大量请求 - 所有内容都通过 Application Insight 日志记录中的构建完美记录,显示依赖关系等!

现在,我们希望添加 ITelemetryInitializer 的实现,以向由上述 SDK 编写的 EventTelemetry 添加一些维度。

我们首先创建一个实现 ITelemetryInitializer 接口(interface)的类。

public class ReferrerTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
if (telemetry is EventTelemetry)
{
// Add some code
}
}
}

然后,我创建一个实现 IWebJobsStartup 接口(interface)的类,以 DI 注入(inject)我的初始值设定项。

[assembly: WebJobsStartup(typeof(Startup))]

namespace LoggingTest
{
public class Startup : IWebJobsStartup
{
public void Configure(IWebJobsBuilder builder)
{
builder.Services.AddSingleton<ITelemetryInitializer, ReferrerTelemetryInitializer>();
}
}
}

注意:我只让 Startup 类在 .NET Core 2.0 中触发(而不是在 2.1 中) - 这似乎是一个开放的已知 issue尽管?

但是,初始化类中的 Initialize 方法永远不会触发(在核心 2.0 中,在我看到 Startup 类已注册 DI ReferrerTelemetryInitializer 实现之后) )?

我们缺少什么?

最佳答案

你没有错过任何东西,它应该可以正常工作。有一个known issue这会破坏函数中的 WebJobStartup。

EventTelemtery 永远不会由 SDK 自动报告(它们报告请求、依赖项、异常、跟踪和指标)。你能检查一下在net core 2.0上是否用其他类型的遥测调用了initialize吗?

关于c# - 使用 Azure Function v2 自定义 Application Insight TelemetryInitializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54416463/

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