Application Insights是否依赖于Azure SDK?

时间:2018-03-08 10:11:49

标签: azure-application-insights azure-sdk

自从添加IntelliTrace以来,在Azure IaaS VM上运行时查找Microsoft.WindowsAzure.ServiceRunTime.dll的应用程序洞察的许多例外情况我都注意到了。

//旁注

值得注意的是,这些例外似乎没有在应用程序洞察门户中报告,除了有时我注意到某些图表中存在高数量的异常,但无法找到异常细节(直到使用IntelliTrace)....但这可能是一个红色的鲱鱼,因为它们可能被TopShelf吞噬。

// end side note

自研究以来,我理解这个dll实际上是在Azure SDK中,而不是nuget包。

我不想为我的服务添加额外的先决条件,我赞成添加扩展程序集引用并复制到本地。

版本不同,寻找2.5.0.0所以还添加了绑定重定向到2.7.0.0

然而,这样做,现在导致

  
      
  • 抛出异常异常:' System.IO.FileNotFoundException'在Microsoft.WindowsAzure.ServiceRuntime.dll("无法加载文件或   assembly' msshrtmi,Version = 2.7.0.0,Culture = neutral,   公钥= 31bf3856ad364e35'或其中一个依赖项。该   系统找不到该文件   指定。")System.IO.FileNotFoundException
  •   

我警惕每次修理一些东西,我都需要修理别的东西,然后别的东西......

导致我回到原来的查询...... 实际问题......: - )

我没有发现任何暗示Application Insights甚至需要安装Azure SDK的内容。这让我想知道异常是否真的是第一次机会异常,其中Application Insights只是询问是否安装了Azure SDK?

供参考,应用洞察设置:

我的应用洞察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:

<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>

应用程序见解是由其他人设置的,我想知道其中一个扩展是否会导致问题,它是否适用于Windows服务。

1 个答案:

答案 0 :(得分:1)

Application Insights本身在Azure中托管,但Application Insights SDK本身对任何Azure SDK都具有 no 依赖关系。 (您不需要您的应用中运行 将数据发送到Application Insights)

您可能正在使用的其他内容可能包含Azure依赖项,但不包含AI。

如果您正在查看有关.net exeptions的网站或vm指标,则该指标适用于整个框架中的抛出异常。如果您没有在AI门户中看到异常,这意味着它们永远不会被AI处理或被AI跟踪。