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 ขั้นสูงเพื่อดูข้อความค้นหาแบบเต็มใน telemetry ของเรา เราได้ปรับปรุงแฟ้ม ApplicationInsights.config การตั้งEnableSqlCommandTextInstrumentationไปจริง

อย่างไรก็ตามหลังจากติดตั้งแพคเกจ Microsoft.Data.SqlClient ล่าสุด (2.01 ในขณะที่เขียน) เราจะไม่ได้รับการอ้างอิง SQL ใด ๆ อีกต่อไปสำหรับโค้ดโดยใช้ไคลเอนต์

ปัญหาคืออะไร?

คำตอบ

4 Chris Oct 08 2020 at 15:01

ปัญหาก็คือการรวมกันของรุ่นของแอพลิเคชันข้อมูลเชิงลึก SDKและ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 ) ซึ่งหวังว่าจะได้รับการแก้ไขในอนาคต

ฉันหวังว่านี่จะช่วยทุกคนที่ดึงผมออกมาได้มากเท่าที่เคยทำ :)