gpt4 book ai didi

c# - Application Insights - 自定义 TrackRequest 正在创建重复消息

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

我希望能够向请求遥测添加自定义属性。我可以使用以下代码来做到这一点:

public void LogRequest(IDictionary<string,string> properties) 
{
var client = new TelemetryClient();
var request = new RequestTelemetry();

foreach(var prop in properties)
{
request.Properties.Add(prop );
}
client.TrackRequest(request);
}

这段代码的工作原理是,它创建了一个包含我想要的所有自定义属性的请求遥测数据,但是应用程序洞察 SDK 也创建了一个重复的请求遥测数据(没有我的自定义属性)。因此它正在发送自己的请求遥测数据和我创建的请求遥测数据。

在尝试做一些研究时,我发现了这一点: https://github.com/Azure/Azure-Functions/wiki/App-Insights-Early-Preview

Custom telemetry

You can bring the .NET App Insights SDK in and create your own TelemetryClient. There isn’t any conflicts, but there is some advice:

Don’t create TrackRequest or use the StartOperation methods if you don’t want duplicate requests – we do this automatically.

所以我的问题是,有没有办法发送我自己的自定义请求遥测数据,而 SDK 不会自动创建重复消息?

此外,我想避免使用 TrackEvent。我需要的大部分信息已经在请求对象中,因此我更愿意使用 TrackRequest。

这是我在跟踪请求部分的应用程序洞察配置中的内容:

<TelemetryModules>
<Add Type="Microsoft.ApplicationInsights.Web.RequestTrackingTelemetryModule, Microsoft.AI.Web">
<Handlers>
<Add>System.Web.Handlers.TransferRequestHandler</Add>
<Add>Microsoft.VisualStudio.Web.PageInspector.Runtime.Tracing.RequestDataHttpHandler</Add>
<Add>System.Web.StaticFileHandler</Add>
<Add>System.Web.Handlers.AssemblyResourceLoader</Add>
<Add>System.Web.Optimization.BundleHandler</Add>
<Add>System.Web.Script.Services.ScriptHandlerFactory</Add>
<Add>System.Web.Handlers.TraceHandler</Add>
<Add>System.Web.Services.Discovery.DiscoveryRequestHandler</Add>
<Add>System.Web.HttpDebugHandler</Add>
</Handlers>
</Add>
</TelemetryModules>

最佳答案

原因是 AI SDK 会自动为您跟踪请求,因此您会得到重复项(没有您的属性的那个是自动创建的)。

正如 PeterBons 建议的那样,使用 Telemetry Initializer您可以将属性添加到自动生成的请求中。

关于c# - Application Insights - 自定义 TrackRequest 正在创建重复消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43124722/

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