Application Insights 是否依赖于 Azure SDK?
Does Application Insights depend on the Azure SDK?
我注意到自从在 Azure IaaS VM 上 运行 时添加 IntelliTrace 后,应用程序洞察中寻找 Microsoft.WindowsAzure.ServiceRunTime.dll 的许多异常。
//旁注
值得注意的是,这些异常似乎没有在应用程序洞察门户中报告,有时我注意到某些图表中的异常数量数量很高,但无法找到异常详细信息(直到使用 IntelliTrace)......但这可能是一个红色鲱鱼,因为它们可能被 TopShelf.
吞噬了
//边注结束
经过研究,我了解到这个 dll 实际上在 Azure SDK 中,而不是 nuget 包。
不想为我的服务添加额外的先决条件,我倾向于添加扩展程序集引用并复制到本地。
版本不同,正在寻找 2.5.0.0,因此还添加了绑定重定向到 2.7.0.0
但是这样做现在会导致
- Exception Exception thrown: 'System.IO.FileNotFoundException' in Microsoft.WindowsAzure.ServiceRuntime.dll ("Could not load file or
assembly 'msshrtmi, Version=2.7.0.0, Culture=neutral,
PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The
system cannot find the file
specified.") System.IO.FileNotFoundException
我很小心,每次我修复某些东西时,我都需要修复其他东西,然后再修复其他东西...
这让我回到了最初的查询...
实际问题... :-)
我没有发现任何表明 Application Insights 甚至需要安装 Azure SDK 的信息。这让我想知道这些异常是否实际上是 Application Insights 只是询问是否安装了 Azure SDK 的第一次机会异常?
供参考,应用程序洞察设置:
我的 Application Insights nuget 包是:
<package id="Microsoft.ApplicationInsights" version="2.5.0" targetFramework="net462" />
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.4.0" targetFramework="net462" />
<package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.5.0" targetFramework="net462" />
<package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.5.0" targetFramework="net462" />
<package id="Microsoft.ApplicationInsights.WindowsServer" version="2.5.0" targetFramework="net462" />
<package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.5.0" targetFramework="net462" />
我的配置包括这些 TelemetryInitializers:
<TelemetryInitializers>
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureWebAppRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer"/>
</TelemetryInitializers>
还有这些遥测模块:
<TelemetryModules>
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector">
<ExcludeComponentCorrelationHttpHeadersOnDomains>
<Add>core.windows.net</Add>
<Add>core.chinacloudapi.cn</Add>
<Add>core.cloudapi.de</Add>
<Add>core.usgovcloudapi.net</Add>
<Add>localhost</Add>
<Add>127.0.0.1</Add>
</ExcludeComponentCorrelationHttpHeadersOnDomains>
<IncludeDiagnosticSourceActivities>
<Add>Microsoft.Azure.EventHubs</Add>
<Add>Microsoft.Azure.ServiceBus</Add>
</IncludeDiagnosticSourceActivities>
</Add>
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
</Add>
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer">
</Add>
</TelemetryModules>
application insights 是由其他人设置的,我想知道是否是其中一个扩展引起了问题,它是针对 windows 服务的。
Application Insights 本身 托管 在 Azure 中,但 Application Insights SDK 本身对任何 Azure SDK 无 依赖性。 (您不需要您的应用 运行 天蓝色 发送数据 到 Application Insights)
您可能使用的其他东西可能有 Azure 依赖项,但没有 AI。
如果您正在查看有关 .net 异常的网站或 vm 指标,该指标是针对整个框架中 thrown 异常的。如果您没有在 AI 门户中看到异常,则意味着它们从未被 AI 处理或跟踪。
我注意到自从在 Azure IaaS VM 上 运行 时添加 IntelliTrace 后,应用程序洞察中寻找 Microsoft.WindowsAzure.ServiceRunTime.dll 的许多异常。
//旁注
值得注意的是,这些异常似乎没有在应用程序洞察门户中报告,有时我注意到某些图表中的异常数量数量很高,但无法找到异常详细信息(直到使用 IntelliTrace)......但这可能是一个红色鲱鱼,因为它们可能被 TopShelf.
吞噬了//边注结束
经过研究,我了解到这个 dll 实际上在 Azure SDK 中,而不是 nuget 包。
不想为我的服务添加额外的先决条件,我倾向于添加扩展程序集引用并复制到本地。
版本不同,正在寻找 2.5.0.0,因此还添加了绑定重定向到 2.7.0.0
但是这样做现在会导致
- Exception Exception thrown: 'System.IO.FileNotFoundException' in Microsoft.WindowsAzure.ServiceRuntime.dll ("Could not load file or assembly 'msshrtmi, Version=2.7.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.") System.IO.FileNotFoundException
我很小心,每次我修复某些东西时,我都需要修复其他东西,然后再修复其他东西...
这让我回到了最初的查询... 实际问题... :-)
我没有发现任何表明 Application Insights 甚至需要安装 Azure SDK 的信息。这让我想知道这些异常是否实际上是 Application Insights 只是询问是否安装了 Azure SDK 的第一次机会异常?
供参考,应用程序洞察设置:
我的 Application Insights nuget 包是:
<package id="Microsoft.ApplicationInsights" version="2.5.0" targetFramework="net462" />
<package id="Microsoft.ApplicationInsights.Agent.Intercept" version="2.4.0" targetFramework="net462" />
<package id="Microsoft.ApplicationInsights.DependencyCollector" version="2.5.0" targetFramework="net462" />
<package id="Microsoft.ApplicationInsights.PerfCounterCollector" version="2.5.0" targetFramework="net462" />
<package id="Microsoft.ApplicationInsights.WindowsServer" version="2.5.0" targetFramework="net462" />
<package id="Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel" version="2.5.0" targetFramework="net462" />
我的配置包括这些 TelemetryInitializers:
<TelemetryInitializers>
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.HttpDependenciesParsingTelemetryInitializer, Microsoft.AI.DependencyCollector"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureWebAppRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.BuildInfoConfigComponentVersionTelemetryInitializer, Microsoft.AI.WindowsServer"/>
</TelemetryInitializers>
还有这些遥测模块:
<TelemetryModules>
<Add Type="Microsoft.ApplicationInsights.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.AI.DependencyCollector">
<ExcludeComponentCorrelationHttpHeadersOnDomains>
<Add>core.windows.net</Add>
<Add>core.chinacloudapi.cn</Add>
<Add>core.cloudapi.de</Add>
<Add>core.usgovcloudapi.net</Add>
<Add>localhost</Add>
<Add>127.0.0.1</Add>
</ExcludeComponentCorrelationHttpHeadersOnDomains>
<IncludeDiagnosticSourceActivities>
<Add>Microsoft.Azure.EventHubs</Add>
<Add>Microsoft.Azure.ServiceBus</Add>
</IncludeDiagnosticSourceActivities>
</Add>
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.PerformanceCollectorModule, Microsoft.AI.PerfCounterCollector">
</Add>
<Add Type="Microsoft.ApplicationInsights.Extensibility.PerfCounterCollector.QuickPulse.QuickPulseTelemetryModule, Microsoft.AI.PerfCounterCollector"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.DeveloperModeWithDebuggerAttachedTelemetryModule, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnhandledExceptionTelemetryModule, Microsoft.AI.WindowsServer"/>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.UnobservedExceptionTelemetryModule, Microsoft.AI.WindowsServer">
</Add>
</TelemetryModules>
application insights 是由其他人设置的,我想知道是否是其中一个扩展引起了问题,它是针对 windows 服务的。
Application Insights 本身 托管 在 Azure 中,但 Application Insights SDK 本身对任何 Azure SDK 无 依赖性。 (您不需要您的应用 运行 天蓝色 发送数据 到 Application Insights)
您可能使用的其他东西可能有 Azure 依赖项,但没有 AI。
如果您正在查看有关 .net 异常的网站或 vm 指标,该指标是针对整个框架中 thrown 异常的。如果您没有在 AI 门户中看到异常,则意味着它们从未被 AI 处理或跟踪。