Application Insight如何自动捕获传入的HttpRequest?

时间:2018-07-31 08:27:38

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

我对应用程序洞察力的检测不熟悉。我只是创建一个简单的asp.net核心Web api项目,并设置应用程序见解进行检测。我注意到,当控制器调用method(GET)时,它将自动捕获应用程序洞察力,而无需任何代码。它是怎么发生的?

2 个答案:

答案 0 :(得分:0)

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

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

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

进一步阅读: ASP.NET Core Middleware

答案 1 :(得分:0)

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

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

其他信息-侦听DiagnosticSource事件的类似方法也用于监视依赖关系(http,sql)。