Application Insights 的应用程序地图不显示依赖项调用
Application Insights' Application Map doesn't show dependency calls
我们已将 Application Insights 添加到部署到 Azure Web 应用服务的 Asp.Net 4.5.1 应用程序。它使用 Entity Framework 和 SqlCommands.
调用数据库
Application Insights 与 javascript 一起添加并在后端添加。 javascript 跟踪工作正常,从使用 Fiddler 跟踪的调用和 Azure 门户中显示的报告数据都可以看出。
对 Web 服务器的请求也显示在报告中,但应用程序图图表未显示从 Web 服务器到数据库的任何依赖调用或任何其他依赖项。
ApplicationInsights.config 是您从 "Create new project" 获得的标准,但删除了 InstrumentationKey 元素。检测密钥在 global.asax 中设置为
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = applicationInsightsKey;
此外网络配置包含
<system.web>
<httpHandlers>
<add path="CombineScriptsHandler.axd" verb="*" type="AjaxControlToolkit.CombineScriptsHandler, AjaxControlToolkit" />
</httpHandlers>
<httpModules>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>
...
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="ApplicationInsightsWebTracking" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
</modules>
如何从 AI 跟踪的 Web 服务器获取数据库查询数据?
更新
我将 Web 项目升级到 .Net 4.6.1 并开始看到一些依赖项,但没有看到实际的 sql 查询文本。为了解决这个问题,我通过 Azure 门户在 App Service 中安装了 AI Status Monitor 扩展。在那之后我完全没有看到依赖调用并且 ApplicationInsightsExtension.log 包含:
9/29/2016 12:15:45 PM: [Verbose] Loading assembly from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Microsoft.ApplicationInsights.WebSiteManager.dll
9/29/2016 12:15:45 PM: [Verbose] Starting Application Insights installation and configuration...
9/29/2016 12:15:46 PM: [Verbose] Loading assembly from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Microsoft.ApplicationInsights.WebSiteManager.dll
9/29/2016 12:15:46 PM: [Verbose] Starting Application Insights Profiler configuration...
9/29/2016 12:15:46 PM: [Verbose] Current processor architecture: x86
9/29/2016 12:15:46 PM: [Verbose] Starting to download/install 'Microsoft.ApplicationInsights.Agent_x86' nuget package from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\appinsights...
9/29/2016 12:15:46 PM, [Verbose] Installing 'Microsoft.ApplicationInsights.Agent_x86', version '2.0.0' ...
9/29/2016 12:15:47 PM, [Verbose] Installed 'Microsoft.ApplicationInsights.Agent_x86', version '2.0.0'.
9/29/2016 12:15:47 PM: [Verbose] End of 'Microsoft.ApplicationInsights.Agent_x86' nuget package download/install.
9/29/2016 12:15:47 PM: [Verbose] Ready to copy files from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Packages\Microsoft.ApplicationInsights.Agent_x86.2.0.0\content\RTIA\x86 to D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Agent
9/29/2016 12:15:47 PM: [Verbose] Microsoft.ApplicationInsights.Extensions.Base_x86.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] Microsoft.ApplicationInsights.ExtensionsHost_x86.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] Microsoft.Diagnostics.Instrumentation.Extensions.Base.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] Microsoft.InstrumentationEngine.Extensions.config.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] MicrosoftInstrumentationEngine_x86.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] End of Application Insights Profiler configuration.
9/29/2016 12:15:47 PM: [Verbose] Loading config from D:\home\site\wwwroot\ApplicationInsights.config
9/29/2016 12:15:47 PM: [Verbose] Application is already instrumented with Application Insights version: 2.1.0.0
9/29/2016 12:15:47 PM: [Verbose] End of Application Insights installation and configuration.
那么如何使用 sql 查询文本日志记录来获取依赖项日志记录?
我有预感,如果我在 applicationinsights.config 文件中有遥测密钥,这会起作用,但我想从应用程序设置中以编程方式设置它。
据此:https://azure.microsoft.com/en-us/documentation/articles/app-insights-dependencies/
要获得依赖项,您需要安装 Status Monitor 或将您的应用程序升级到 .NET Framework 4.6 或更高版本。
还要检查 applicationinsights.config 文件是否已复制到您的部署文件夹 - 即它在 "Copy to Output Directory" 属性 中标记为 "copy if newer"。我不认为 msbuild 会为你做这个。
我们已将 Application Insights 添加到部署到 Azure Web 应用服务的 Asp.Net 4.5.1 应用程序。它使用 Entity Framework 和 SqlCommands.
调用数据库Application Insights 与 javascript 一起添加并在后端添加。 javascript 跟踪工作正常,从使用 Fiddler 跟踪的调用和 Azure 门户中显示的报告数据都可以看出。
对 Web 服务器的请求也显示在报告中,但应用程序图图表未显示从 Web 服务器到数据库的任何依赖调用或任何其他依赖项。
ApplicationInsights.config 是您从 "Create new project" 获得的标准,但删除了 InstrumentationKey 元素。检测密钥在 global.asax 中设置为
Microsoft.ApplicationInsights.Extensibility.TelemetryConfiguration.Active.InstrumentationKey = applicationInsightsKey;
此外网络配置包含
<system.web>
<httpHandlers>
<add path="CombineScriptsHandler.axd" verb="*" type="AjaxControlToolkit.CombineScriptsHandler, AjaxControlToolkit" />
</httpHandlers>
<httpModules>
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" />
</httpModules>
...
<system.webServer>
<modules runAllManagedModulesForAllRequests="true">
<remove name="ApplicationInsightsWebTracking" />
<add name="ApplicationInsightsWebTracking" type="Microsoft.ApplicationInsights.Web.ApplicationInsightsHttpModule, Microsoft.AI.Web" preCondition="managedHandler" />
</modules>
如何从 AI 跟踪的 Web 服务器获取数据库查询数据?
更新
我将 Web 项目升级到 .Net 4.6.1 并开始看到一些依赖项,但没有看到实际的 sql 查询文本。为了解决这个问题,我通过 Azure 门户在 App Service 中安装了 AI Status Monitor 扩展。在那之后我完全没有看到依赖调用并且 ApplicationInsightsExtension.log 包含:
9/29/2016 12:15:45 PM: [Verbose] Loading assembly from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Microsoft.ApplicationInsights.WebSiteManager.dll
9/29/2016 12:15:45 PM: [Verbose] Starting Application Insights installation and configuration...
9/29/2016 12:15:46 PM: [Verbose] Loading assembly from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Microsoft.ApplicationInsights.WebSiteManager.dll
9/29/2016 12:15:46 PM: [Verbose] Starting Application Insights Profiler configuration...
9/29/2016 12:15:46 PM: [Verbose] Current processor architecture: x86
9/29/2016 12:15:46 PM: [Verbose] Starting to download/install 'Microsoft.ApplicationInsights.Agent_x86' nuget package from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\appinsights...
9/29/2016 12:15:46 PM, [Verbose] Installing 'Microsoft.ApplicationInsights.Agent_x86', version '2.0.0' ...
9/29/2016 12:15:47 PM, [Verbose] Installed 'Microsoft.ApplicationInsights.Agent_x86', version '2.0.0'.
9/29/2016 12:15:47 PM: [Verbose] End of 'Microsoft.ApplicationInsights.Agent_x86' nuget package download/install.
9/29/2016 12:15:47 PM: [Verbose] Ready to copy files from D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Packages\Microsoft.ApplicationInsights.Agent_x86.2.0.0\content\RTIA\x86 to D:\home\SiteExtensions\Microsoft.ApplicationInsights.AzureWebSites\Agent
9/29/2016 12:15:47 PM: [Verbose] Microsoft.ApplicationInsights.Extensions.Base_x86.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] Microsoft.ApplicationInsights.ExtensionsHost_x86.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] Microsoft.Diagnostics.Instrumentation.Extensions.Base.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] Microsoft.InstrumentationEngine.Extensions.config.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] MicrosoftInstrumentationEngine_x86.dll.Name was copied.
9/29/2016 12:15:47 PM: [Verbose] End of Application Insights Profiler configuration.
9/29/2016 12:15:47 PM: [Verbose] Loading config from D:\home\site\wwwroot\ApplicationInsights.config
9/29/2016 12:15:47 PM: [Verbose] Application is already instrumented with Application Insights version: 2.1.0.0
9/29/2016 12:15:47 PM: [Verbose] End of Application Insights installation and configuration.
那么如何使用 sql 查询文本日志记录来获取依赖项日志记录?
我有预感,如果我在 applicationinsights.config 文件中有遥测密钥,这会起作用,但我想从应用程序设置中以编程方式设置它。
据此:https://azure.microsoft.com/en-us/documentation/articles/app-insights-dependencies/
要获得依赖项,您需要安装 Status Monitor 或将您的应用程序升级到 .NET Framework 4.6 或更高版本。
还要检查 applicationinsights.config 文件是否已复制到您的部署文件夹 - 即它在 "Copy to Output Directory" 属性 中标记为 "copy if newer"。我不认为 msbuild 会为你做这个。