【问题标题】:How Application Insight does automatically capture Incoming HttpRequests?Application Insight 如何自动捕获传入的 Http 请求?
【发布时间】:2019-01-07 13:54:17
【问题描述】:

我对使用应用程序洞察力进行检测并不陌生。我只是创建简单的 asp.net 核心 web api 项目并设置应用程序洞察力以进行检测。当控制器被调用方法(GET)时,我注意到它会自动捕获应用程序洞察力,而无需任何代码。它是怎么发生的?

【问题讨论】:

    标签: azure asp.net-core-webapi azure-application-insights


    【解决方案1】:

    如果您的问题是关于“Application Insights 如何捕获有关应用程序传入请求的信息”,那么它基于 DiagnosticSource 事件。 Asp.Net Core 托管环境发布 Application Insights 订阅的 DiagnosticSource 事件,并从中创建 RequestTelemetry。 下面显示了正在侦听的事件的确切名称: https://github.com/Microsoft/ApplicationInsights-aspnetcore/blob/develop/src/Microsoft.ApplicationInsights.AspNetCore/DiagnosticListeners/Implementation/HostingDiagnosticListener.cs#L68

    注意:在 SDK 的旧版本中,请求监控是通过“RequestTrackingMiddleWare”完成的,现在已过时。

    附加信息 - 侦听 DiagnosticSource 事件的类似方法也用于监视依赖项(http、sql)。

    【讨论】:

      【解决方案2】:

      如果您使用 Visual Studio 添加 Application Insight,它将自动在您的 CreateWebHostBuilder 方法中添加 .UseApplicationInsights()

      public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
                  WebHost.CreateDefaultBuilder(args)
                      .UseApplicationInsights()
                      .UseStartup<Startup>();
      

      这会将 Application Insight 添加到执行日志记录的应用程序管道(中间件)。

      进一步阅读: ASP.NET Core Middleware

      【讨论】:

        猜你喜欢
        • 2015-01-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多