首页 > 解决方案 > Application Insight 如何自动捕获传入的 HttpRequest?

问题描述

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

标签: azureasp.net-core-webapiazure-application-insights

解决方案


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

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

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


推荐阅读