当前位置: 首页 > 知识库问答 >
问题:

应用程序洞察-自定义TrackRequest正在创建重复的消息

燕意蕴
2023-03-14

我希望能够添加自定义属性到一个请求遥测。我可以使用以下代码来完成此操作:

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);
}

在尝试进行一些研究时,我发现了以下内容:https://github.com/azure/azure-functions/wiki/app-insights-early-preview

自定义遥测

您可以将.NET App Insights SDK引入并创建自己的TelemetryClient。没有任何冲突,但有一些建议:

另外,我希望避免使用TrackEvent。我需要的大部分信息已经在request对象中,所以我更喜欢使用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>

共有1个答案

琴宾鸿
2023-03-14

原因是AI SDK会自动为您跟踪请求,因此您会得到DUP(不包含您的属性的DUP是自动创建的)。

正如PeterBons所建议的,使用遥测初始化器,您可以将属性添加到自动生成的请求中。

 类似资料:
  • 我想有一个共享的应用程序insights实例,将保存来自不同微服务运行的所有日志。 或者说,共享应用程序insights实例并将所有日志和遥测都放在一堆中是不是一个坏主意?

  • 我正在Windows Server 2016 Azure VM中运行无代码版本的Application Insights。通过SDK,我知道可以添加自定义遥测,这样我就可以更新出现在度量中的cloudRoleName值。 我的问题是,对于由应用程序洞察推动的性能计数器,它只为进程相关数据提供了一个值,如,但我确实希望能够将该进程与应用程序池(理想情况下是与cloudRoleName)相关联 我可以

  • 我有一个使用应用程序洞察的.NET5Web应用程序。我尝试使用登录AI trace。然而:当分析Azure上AI中的“痕迹”内容时,日志并不显示。 启动部分: 应该进行日志记录的类的构造函数通过依赖注入来注入ILogger和AppInsights: 在该方法中,我有以下两个日志记录尝试: instrumentationkey存储在appsettings中(显然正确,因为telemetryClien

  • 有没有什么简单的方法可以找到哪些应用程序正在使用azure Portal的特定应用程序洞察? 我已经检查了门户中的各种选项,但没有找到任何易于理解的界面,我可以在其中找到正在向特定应用程序Insights发送数据的应用程序列表。

  • 这只是一个每分钟都会运行半个小时的测试函数。 这似乎部分工作,因为我可以看到一些遥测在AI但不是自定义事件。例如,我可以看到每次运行时都会出现一个请求,以及在WebJob初始化期间的各种跟踪。 我可能没有正确配置某些内容,或者没有以正确的方式获取,但是我找不到任何关于在WebJobs中跟踪自定义事件的文档。 如有任何帮助,我们将不胜感激。

  • 我们为Azure Portal中托管的Web应用程序安装了应用程序Insights。