使用应用程序洞察状态监视器监控ASP.NET应用程序中的实体框架性能

5
我一直使用 Application Insights (AI) 监控我的 ASP.NET 应用程序。最近,我也在我的 Web 服务器(Windows Server 2012 R2 with IIS)上安装了 AI Status Monitor,以获取更详细的应用程序统计信息。如文档所述,AI Status Monitor 报告了依赖性诊断,即调用数据库、REST API 等。因此,我认为我会得到通过 Entity Framework 在我的应用程序中执行的数据库调用的诊断。

然而,我的 AI 中没有出现任何数据库调用的诊断。但是,AI Status Monitor 是可以正常工作的,因为我开始收到关于其他依赖项但不包括数据库的诊断(例如,在防火墙上阻止通信端口不太可能成为问题)。

有人成功地设置了 AI Status Monitor 来报告使用 Entity Framework 的数据库诊断吗?我是否缺少需要添加到应用程序代码或 AI Status Monitor 中的任何配置?


你的 ApplicationInsights.config 的 TelemetryModules 中是否有 DependencyTrackingTelemetryModule? - Eivind T
是的,我在“TelemetryModules”中有<Add Type="Microsoft.ApplicationInsights.Extensibility.DependencyCollector.DependencyTrackingTelemetryModule, Microsoft.ApplicationInsights.Extensibility.DependencyCollector" /> - Jan Palas
好的,我正在使用EF并且我正在获取SQL遥测,而且没有进行任何特殊配置。据我所知,无论您是使用EF还是进行普通的ado.net,都不会有影响,所以很抱歉我不知道。 - Eivind T
谢谢 @Eivind T 确认您可以在没有任何特殊配置的情况下获取SQL遥测。 - Jan Palas
这个问题解决了吗? - kudlatiger
1个回答

1
一个可能的问题是,您需要将IIS应用程序池的身份添加到“性能监视器用户”组中,这可能是您的问题;如果您还没有收到任何性能计数器数据,则绝对是这个原因。
另一种可能性是,您的IIS站点未启用“分析”。当您在Web服务器上启动AI SM时,右上角会有一个按钮“更新配置”,如果已禁用IIS的COR分析(您会点击该按钮,然后几秒钟后点击重新启动IIS按钮)。如果您遇到此情况,则可能会与您的公司环境使用的SCOM存在冲突。它会工作几天,但最终SCOM会注意到其中的一部分不再工作,它将覆盖它,您将再次失去依赖关系数据。 AI SM和SCOM的MMA之间存在冲突,直到SCOM 2016才能解决。

谢谢您的建议,但是这两个都不是我的问题。我确保IIS应用程序池标识是“性能监视器用户”组的成员(如果不是,则在AI SM中也会收到警告)。我也没有看到“更新配置”按钮,我们也不使用SCOM,因此我认为这不是我问题的原因... - Jan Palas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接