Application Insights(部分)缺失数据
Application Insights (partially) missing data
我正在尝试将 Application Insights 改造为现有应用程序,但无论我做什么,我似乎只能从前端获取遥测数据:
(注意 "Add Application Insights SDK..." 横幅,"No data" 警告,所有服务器响应和 0 个服务器请求显然为 0 毫秒 - 服务器响应时间上的蓝色小半圆只是当前选择的点)
我已经安装了以下 nuget 包的 v2.1.0:
"Microsoft.ApplicationInsights"
"Microsoft.ApplicationInsights.Agent.Intercept"
"Microsoft.ApplicationInsights.DependencyCollector"
"Microsoft.ApplicationInsights.NLogTarget"
"Microsoft.ApplicationInsights.PerfCounterCollector"
"Microsoft.ApplicationInsights.Web"
"Microsoft.ApplicationInsights.WindowsServer"
"Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel"
并将我的检测密钥添加到 ApplicationInsights.config 文件:
<InstrumentationKey>{my key here}</InstrumentationKey>
</ApplicationInsights>
我还监视了通过 ETW 的事件,我看到很多消息表明正在记录数据,尽管也有很多消息说:
WebTelemetryInitializerNotExecutedOnNullHttpContext
但不确定这是否有问题?
让事情更加混乱,一些服务器端数据确实似乎正在通过,因为应用程序映射看起来像这样:
我也试过在盒子上安装 Application Insights Agent,但我看不出有什么不同!
那里似乎有很多类似的问题,但它们似乎都没有解决办法,解决办法是删除并重新添加 nuget 包(已尝试)或者有多个 ApplicationInsights.config文件(已检查但没有)...
N.B。此应用程序通常 运行 在 AWS EC2 中的虚拟机上,但没有防火墙规则阻止任何出站流量,我也在本地尝试 运行 它...
是的,问题是您找到的 WebTelemetryInitializerNotExecutedOnNullHttpContext 消息。查看 source code,这意味着 HttpContext.Current 为空。
我不确定你的情况为什么会这样,所以你能详细说明一下你的网络应用程序结构吗?您是 运行 虚拟机上的 IIS 吗?
明白了,但无法真正解释。
重新从头开始,这次成功了,尽管我最初的尝试和上次从头开始没有成功。
我注意到有一些新功能,例如与 Code Lens 的集成,所以我不知道 Application Insights 是否发生了某些变化,或者连续两次出错(虽然我不知道是什么 可能出错了,因为添加 Application Insights 并不是一个真正复杂的过程!)
对于 ASP.NET 项目,请同时考虑使用的 azure 区域。 “德国中西部”地区存在问题。它不会将所有数据同步到 azure application insights。我们通过将 application insights azure 实例切换到“欧洲西部”区域解决了我们的问题(我们在 ASP.NET CORE 项目上没有遇到任何问题)。
我不知道为什么 MS 没有提到这个事实,但经过数小时的搜索,我们发现了以下 github 条目 -> https://github.com/microsoft/ApplicationInsights-dotnet/issues/1931
我正在尝试将 Application Insights 改造为现有应用程序,但无论我做什么,我似乎只能从前端获取遥测数据:
(注意 "Add Application Insights SDK..." 横幅,"No data" 警告,所有服务器响应和 0 个服务器请求显然为 0 毫秒 - 服务器响应时间上的蓝色小半圆只是当前选择的点)
我已经安装了以下 nuget 包的 v2.1.0:
"Microsoft.ApplicationInsights"
"Microsoft.ApplicationInsights.Agent.Intercept"
"Microsoft.ApplicationInsights.DependencyCollector"
"Microsoft.ApplicationInsights.NLogTarget"
"Microsoft.ApplicationInsights.PerfCounterCollector"
"Microsoft.ApplicationInsights.Web"
"Microsoft.ApplicationInsights.WindowsServer"
"Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel"
并将我的检测密钥添加到 ApplicationInsights.config 文件:
<InstrumentationKey>{my key here}</InstrumentationKey>
</ApplicationInsights>
我还监视了通过 ETW 的事件,我看到很多消息表明正在记录数据,尽管也有很多消息说:
WebTelemetryInitializerNotExecutedOnNullHttpContext
但不确定这是否有问题?
让事情更加混乱,一些服务器端数据确实似乎正在通过,因为应用程序映射看起来像这样:
我也试过在盒子上安装 Application Insights Agent,但我看不出有什么不同!
那里似乎有很多类似的问题,但它们似乎都没有解决办法,解决办法是删除并重新添加 nuget 包(已尝试)或者有多个 ApplicationInsights.config文件(已检查但没有)...
N.B。此应用程序通常 运行 在 AWS EC2 中的虚拟机上,但没有防火墙规则阻止任何出站流量,我也在本地尝试 运行 它...
是的,问题是您找到的 WebTelemetryInitializerNotExecutedOnNullHttpContext 消息。查看 source code,这意味着 HttpContext.Current 为空。
我不确定你的情况为什么会这样,所以你能详细说明一下你的网络应用程序结构吗?您是 运行 虚拟机上的 IIS 吗?
明白了,但无法真正解释。
重新从头开始,这次成功了,尽管我最初的尝试和上次从头开始没有成功。
我注意到有一些新功能,例如与 Code Lens 的集成,所以我不知道 Application Insights 是否发生了某些变化,或者连续两次出错(虽然我不知道是什么 可能出错了,因为添加 Application Insights 并不是一个真正复杂的过程!)
对于 ASP.NET 项目,请同时考虑使用的 azure 区域。 “德国中西部”地区存在问题。它不会将所有数据同步到 azure application insights。我们通过将 application insights azure 实例切换到“欧洲西部”区域解决了我们的问题(我们在 ASP.NET CORE 项目上没有遇到任何问题)。
我不知道为什么 MS 没有提到这个事实,但经过数小时的搜索,我们发现了以下 github 条目 -> https://github.com/microsoft/ApplicationInsights-dotnet/issues/1931