Application Insights SDK SQL依赖关系跟踪不适用于Microsoft.Data.SqlClient 2.0

问题描述

我们在.NET Framework 4.7.2应用程序中使用了Application Insights SDK(v2.14),并且能够成功跟踪sql依赖项(尽管没有查询文本)。

我们现在正在从System.Data.sqlClient迁移到Microsoft.Data.SqlClient包,因此我们也可以在遥测中执行Advanced SQL tracking to see the full query text。我们已经更新了ApplicationInsights.config文件,将 EnablesqlCommandTextInstrumentation 设置为 true

但是,在安装了最新的Microsoft.Data.sqlClient软件包(在撰写本文时为2.01)之后,我们不再使用客户端来跟踪任何sql依赖项。

出什么问题了?

解决方法

问题是Application Insights SDKMicrosoft.Data.SqlClient的版本组合。

Microsoft.Data.SqlClient changed the naming for EventSource tracing的2.0版有效地破坏了AI SDK中对SQL依赖项跟踪的支持,直到版本2.15(在撰写本文时)。

解决方法是将Microsoft.Data.SqlClient降级为具有旧EventSource命名的版本1.1.3。这将恢复SQL依赖关系跟踪(如果添加 EnableSqlCommandTextInstrumentation 标志,则会显示SQL查询文本)。

有报道称有针对AI SDK的问题可以解决此问题(尤其是2032),这有望在将来得到解决。

我希望这对像我一样拉长头发的人有所帮助:)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...