Application Insights SDK SQL Dependency Tracking не работает с Microsoft.Data.SqlClient 2.0
Мы используем 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, отслеживаемых для кода с помощью клиента.
В чем проблема?
Ответы
Проблема заключается в сочетании версий пакета 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 года ), что, надеюсь, означает, что это будет исправлено в будущем.
Надеюсь, это поможет любому, кто выдергивает волосы так же сильно, как и я :)