Application Insights SDK SQL Dependency Tracking no funciona con Microsoft.Data.SqlClient 2.0

Oct 08 2020

Estamos usando Application Insights SDK (v2.14) en nuestra aplicación .NET Framework 4.7.2 y hemos podido rastrear las dependencias de SQL (aunque sin texto de consulta) con éxito.

Ahora estamos migrando al paquete Microsoft.Data.SqlClient desde System.Data.SqlClient para que también podamos hacer un seguimiento de SQL avanzado para ver el texto completo de la consulta en nuestra telemetría. Hemos actualizado el archivo ApplicationInsights.config para establecer EnableSqlCommandTextInstrumentation en verdadero .

Sin embargo, después de instalar el último paquete Microsoft.Data.SqlClient (2.01 en el momento de escribir este artículo) ya no obtenemos CUALQUIER dependencia de SQL que se rastrea para el código usando el cliente.

¿Cual es el problema?

Respuestas

4 Chris Oct 08 2020 at 15:01

El problema es la combinación de versiones de Application Insights SDK y Microsoft.Data.SqlClient .

La versión 2.0 de Microsoft.Data.SqlClient cambió el nombre para el seguimiento de EventSource y, al hacerlo, rompió efectivamente el soporte para el seguimiento de dependencias de SQL en AI SDK para versiones hasta 2.15 (en el momento de escribir este artículo).

La solución es degradar Microsoft.Data.SqlClient a la versión 1.1.3, que tiene el antiguo nombre de EventSource. Esto restaurará el seguimiento de la dependencia de SQL (y mostrará el texto de la consulta SQL si agrega el indicador EnableSqlCommandTextInstrumentation ).

Hay problemas informados contra el SDK de AI para solucionar esto ( 2032 en particular) que, con suerte, significarán que esto se solucionará en el futuro.

Espero que esto ayude a cualquiera que se esté arrancando los pelos tanto como yo :)