【发布时间】:2017-07-17 19:07:04
【问题描述】:
我有一个配置了 Serilog 日志记录以转到 Application Insights 的 webapi 应用程序。 当我的 webapi 应用程序在本地运行时,我可以通过 Application Insights 中的“搜索”查看应用程序的日志,还可以看到 Live Metrics Stream。
但是,在部署应用程序时,我看不到实时指标流(它显示“不可用:您的应用程序处于离线状态或使用较旧的 SDK)。有趣的是,我仍然可以在搜索功能中看到应用程序的日志 -所以应用程序自己的日志记录工作正常,但实时指标数据收集不工作。
AI troubleshooting documentation 表明这可能是防火墙问题,但我已验证可以访问live metrics stream ports 的端口 443(rt.services.visualstudio.com 和 rt.applicationinsights.microsoft.com ) 从该服务器使用 telnet。
服务器上的 Application Insights Monitor 显示该站点已“启用”。唯一的通知是“Application Insights 已通过应用程序项目代码为此应用程序启用。(...)”。最初我收到有关无法收集指标的警告,但我将应用程序池的身份添加到相应的组中,该警告现已消失。
我所做的唯一真正的自定义是从 applicationinsights.config 文件中删除 AI 密钥,并在代码中设置它,以便我可以为每个环境拥有不同的 AI 资源。
我在 Startup.Configuration 方法中设置检测密钥的代码如下:
if (TelemetryConfiguration.Active != null)
{
TelemetryConfiguration.Active.InstrumentationKey = ConfigurationManager.AppSettings["ApplicationInsightsKey"];
}
同样,这是在本地工作,所以我认为问题不在于代码中 AI 键的设置。
我是否可以为 AI 打开任何其他“自我记录”,以查看它为什么在收集或发送实时指标时遇到问题?
【问题讨论】:
-
AI 程序集的最新版本是否都已部署?您可以通过搜索中出现的内容查看
sdkVersion字段输出来确定吗?
标签: asp.net-web-api azure-application-insights