Application Insights SDK SQL Dependency Tracking không hoạt động với Microsoft.Data.SqlClient 2.0

Oct 08 2020

Chúng tôi đang sử dụng SDK Thông tin chi tiết về ứng dụng (v2.14) trong ứng dụng .NET Framework 4.7.2 của mình và đã có thể theo dõi thành công các phụ thuộc SQL (mặc dù không có văn bản truy vấn).

Chúng tôi hiện đang chuyển sang gói Microsoft.Data.SqlClient từ System.Data.SqlClient, vì vậy chúng tôi cũng có thể thực hiện theo dõi SQL Nâng cao để xem toàn bộ văn bản truy vấn trong phép đo từ xa của chúng tôi. Chúng tôi đã cập nhật tệp ApplicationInsights.config để đặt EnableSqlCommandTextI Kinh nguyệt thành true .

Tuy nhiên, sau khi cài đặt gói Microsoft.Data.SqlClient mới nhất (2.01 tại thời điểm viết bài), chúng tôi không còn nhận được BẤT KỲ phần phụ thuộc SQL nào được theo dõi mã bằng ứng dụng khách nữa.

Vấn đề là gì?

Trả lời

4 Chris Oct 08 2020 at 15:01

Vấn đề là sự kết hợp của các phiên bản của SDK Thông tin chi tiết về ứng dụng và Microsoft.Data.SqlClient .

Phiên bản 2.0 của Microsoft.Data.SqlClient đã thay đổi cách đặt tên cho theo dõi EventSource và làm như vậy đã phá vỡ hiệu quả hỗ trợ theo dõi phụ thuộc SQL trong SDK AI cho các phiên bản lên đến 2.15 (tại thời điểm viết bài).

Cách giải quyết là hạ cấp Microsoft.Data.SqlClient xuống phiên bản 1.1.3 có tên EventSource cũ. Điều này sẽ khôi phục theo dõi phụ thuộc SQL (và hiển thị văn bản Truy vấn SQL nếu bạn thêm cờ EnableSqlCommandTextI Kinh nguyệt ).

Có một số vấn đề được báo cáo chống lại SDK AI để khắc phục điều này ( cụ thể là năm 2032 ), hy vọng điều này có nghĩa là điều này sẽ được khắc phục trong tương lai.

Tôi hy vọng điều này sẽ giúp bất cứ ai đang nhổ tóc nhiều như tôi đã làm :)