Application Insights SDK SQL Dependency Tracking не работает с Microsoft.Data.SqlClient 2.0

Oct 08 2020

Мы используем Application Insights SDK (v2.14) в нашем приложении .NET Framework 4.7.2 и смогли успешно отслеживать зависимости SQL (хотя и без текста запроса).

Сейчас мы переходим на пакет Microsoft.Data.SqlClient из System.Data.SqlClient, поэтому мы также можем выполнять расширенное отслеживание SQL, чтобы увидеть полный текст запроса в нашей телеметрии. Мы обновили файл ApplicationInsights.config, установив для EnableSqlCommandTextInstrumentation значение true .

Однако после установки последнего пакета Microsoft.Data.SqlClient (2.01 на момент написания) мы больше не получаем НИКАКИХ зависимостей SQL, отслеживаемых для кода с помощью клиента.

В чем проблема?

Ответы

4 Chris Oct 08 2020 at 15:01

Проблема заключается в сочетании версий пакета SDK Application Insights и Microsoft.Data.SqlClient .

Версия 2.0 Microsoft.Data.SqlClient изменила название для трассировки EventSource и тем самым фактически нарушила поддержку отслеживания зависимостей SQL в AI SDK для версий до 2.15 (на момент написания).

Обходной путь - понизить Microsoft.Data.SqlClient до версии 1.1.3 со старым именем EventSource. Это восстановит отслеживание зависимостей SQL (и покажет текст SQL-запроса, если вы добавите флаг EnableSqlCommandTextInstrumentation ).

Сообщается о проблемах с AI SDK для исправления этого ( в частности, 2032 года ), что, надеюсь, означает, что это будет исправлено в будущем.

Надеюсь, это поможет любому, кто выдергивает волосы так же сильно, как и я :)