Le suivi des dépendances SQL du SDK Application Insights ne fonctionne pas avec Microsoft.Data.SqlClient 2.0
Nous utilisons le SDK Application Insights (v2.14) dans notre application .NET Framework 4.7.2 et avons pu suivre les dépendances SQL (bien que sans texte de requête) avec succès.
Nous migrons maintenant vers le package Microsoft.Data.SqlClient à partir de System.Data.SqlClient afin que nous puissions également effectuer un suivi SQL avancé pour voir le texte complet de la requête dans notre télémétrie. Nous avons mis à jour le fichier ApplicationInsights.config pour définir EnableSqlCommandTextInstrumentation sur true .
Cependant, après l'installation du dernier package Microsoft.Data.SqlClient (2.01 au moment de la rédaction), nous n'obtenons plus de suivi des dépendances SQL pour le code à l'aide du client.
Quel est le problème?
Réponses
Le problème est la combinaison des versions du SDK Application Insights et de Microsoft.Data.SqlClient .
La version 2.0 de Microsoft.Data.SqlClient a modifié la dénomination du traçage EventSource et, ce faisant, a effectivement rompu la prise en charge du suivi des dépendances SQL dans le SDK AI pour les versions jusqu'à 2.15 (au moment de la rédaction).
La solution de contournement consiste à rétrograder Microsoft.Data.SqlClient vers la version 1.1.3 qui a l'ancien nom EventSource. Cela restaurera le suivi des dépendances SQL (et affichera le texte de la requête SQL si vous ajoutez l' indicateur EnableSqlCommandTextInstrumentation ).
Il y a des problèmes signalés contre le SDK AI pour résoudre ce problème ( 2032 en particulier) qui, espérons-le, signifieront que cela sera corrigé à l'avenir.
J'espère que cela aidera tous ceux qui s'arrachent les cheveux autant que moi :)