Śledzenie zależności SQL Application Insights SDK nie działa z Microsoft.Data.SqlClient 2.0

Oct 08 2020

Używamy zestawu Application Insights SDK (v2.14) w naszej aplikacji .NET Framework 4.7.2 i udało nam się pomyślnie śledzić zależności SQL (aczkolwiek bez tekstu zapytania).

Przeprowadzamy teraz migrację do pakietu Microsoft.Data.SqlClient z System.Data.SqlClient, abyśmy mogli również przeprowadzić zaawansowane śledzenie SQL, aby zobaczyć pełny tekst zapytania w naszej telemetrii. Zaktualizowaliśmy plik ApplicationInsights.config, aby ustawić EnableSqlCommandTextInstrumentation na wartość true .

Jednak po zainstalowaniu najnowszego pakietu Microsoft.Data.SqlClient (2.01 w momencie pisania) nie otrzymujemy już ŻADNYCH zależności SQL, które są śledzone pod kątem kodu przy użyciu klienta.

W czym problem?

Odpowiedzi

4 Chris Oct 08 2020 at 15:01

Problem polega na połączeniu wersji zestawu Application Insights SDK i Microsoft.Data.SqlClient .

Wersja 2.0 Microsoft.Data.SqlClient zmieniła nazewnictwo śledzenia EventSource i robiąc to skutecznie złamała obsługę śledzenia zależności SQL w AI SDK dla wersji do 2.15 (w momencie pisania).

Sposób obejścia problemu polega na obniżeniu wersji Microsoft.Data.SqlClient do wersji 1.1.3, która ma stare nazewnictwo EventSource. Spowoduje to przywrócenie śledzenia zależności SQL (i wyświetlenie tekstu zapytania SQL, jeśli dodasz flagę EnableSqlCommandTextInstrumentation ).

Istnieją problemy z AI SDK, aby to naprawić ( w szczególności 2032 ), co, miejmy nadzieję, oznacza, że ​​zostanie to naprawione w przyszłości.

Mam nadzieję, że pomoże to każdemu, kto wyrywa sobie włosy tak samo jak ja :)