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