Il rilevamento delle dipendenze SQL di Application Insights SDK non funziona con Microsoft.Data.SqlClient 2.0

Oct 08 2020

Stiamo utilizzando Application Insights SDK (v2.14) nella nostra applicazione .NET Framework 4.7.2 e siamo stati in grado di tenere traccia delle dipendenze SQL (anche se senza testo della query) con successo.

Stiamo ora migrando al pacchetto Microsoft.Data.SqlClient da System.Data.SqlClient, quindi possiamo anche eseguire il monitoraggio SQL avanzato per vedere il testo completo della query nella nostra telemetria. Abbiamo aggiornato il file ApplicationInsights.config per impostare EnableSqlCommandTextInstrumentation su true .

Tuttavia, dopo aver installato l'ultimo pacchetto Microsoft.Data.SqlClient (2.01 al momento della scrittura) non riceviamo più NESSUNA dipendenza SQL monitorata per il codice utilizzando il client.

Qual è il problema?

Risposte

4 Chris Oct 08 2020 at 15:01

Il problema è la combinazione delle versioni di Application Insights SDK e Microsoft.Data.SqlClient .

La versione 2.0 di Microsoft.Data.SqlClient ha modificato la denominazione per la traccia EventSource e così facendo ha interrotto efficacemente il supporto per il rilevamento delle dipendenze SQL in AI SDK per le versioni fino alla 2.15 (al momento della scrittura).

La soluzione è eseguire il downgrade di Microsoft.Data.SqlClient alla versione 1.1.3 che ha la vecchia denominazione EventSource. Ciò ripristinerà il rilevamento delle dipendenze SQL (e mostrerà il testo della query SQL se si aggiunge il flag EnableSqlCommandTextInstrumentation ).

Ci sono problemi segnalati contro l'SDK AI per risolvere questo problema ( 2032 in particolare) che si spera significhi che questo verrà risolto in futuro.

Spero che questo aiuti chiunque si stia strappando i capelli tanto quanto me :)