Application Insights SDK SQL Dependency Tracking tidak berfungsi dengan Microsoft.Data.SqlClient 2.0
Kami menggunakan Application Insights SDK (v2.14) di aplikasi .NET Framework 4.7.2 kami dan telah berhasil melacak dependensi SQL (meskipun tanpa teks kueri).
Kami sekarang bermigrasi ke paket Microsoft.Data.SqlClient dari System.Data.SqlClient sehingga kami juga dapat melakukan pelacakan SQL Lanjutan untuk melihat teks kueri lengkap di telemetri kami. Kami telah memperbarui file ApplicationInsights.config untuk menyetel EnableSqlCommandTextInstrumentation ke true .
Namun, setelah menginstal paket Microsoft.Data.SqlClient terbaru (2.01 pada saat penulisan) kami tidak lagi mendapatkan dependensi SQL APA PUN yang dilacak untuk kode menggunakan klien.
apa masalahnya?
Jawaban
Masalahnya adalah kombinasi versi dari Application Insights SDK dan Microsoft.Data.SqlClient .
Versi 2.0 dari Microsoft.Data.SqlClient mengubah penamaan untuk pelacakan EventSource dan dengan demikian secara efektif merusak dukungan untuk pelacakan ketergantungan SQL di AI SDK untuk versi hingga 2.15 (pada saat penulisan).
Solusinya adalah dengan menurunkan Microsoft.Data.SqlClient ke versi 1.1.3 yang memiliki penamaan EventSource lama. Ini akan memulihkan pelacakan ketergantungan SQL (dan menampilkan teks SQL Query jika Anda menambahkan tanda EnableSqlCommandTextInstrumentation ).
Ada masalah yang dilaporkan terhadap AI SDK untuk memperbaikinya ( khususnya pada tahun 2032 ) yang diharapkan dapat diperbaiki di masa mendatang.
Saya harap ini membantu siapa saja yang menjambak rambut mereka sebanyak yang saya lakukan :)