แชร์ผ่าน


วิเคราะห์บันทึกที่ระบบสร้างขึ้นโดยใช้ Application Insights

เชื่อมต่อแอปพื้นที่ทำงานของคุณกับ Application Insights ซึ่งเป็นคุณลักษณะของ Azure Monitor Application Insights มีเครื่องมือวิเคราะห์ที่ช่วยวินิจฉัยปัญหาและทำความเข้าใจลักษณะการทำงานของผู้ใช้ในแอป ใช้ข้อมูลที่รวบรวมเพื่อตัดสินใจทางธุรกิจได้ดีขึ้นและปรับปรุงคุณภาพแอป

ข้อกำหนดเบื้องต้น

หมายเหตุ

หากต้องการดูข้อมูลการวัดและส่งข้อมูลทางไกล ผู้ดูแลระบบผู้เช่าของคุณต้องเปิดใช้งาน ข้อมูลเชิงลึกของแอปพื้นที่ทำงาน ลงชื่อเข้าใช้ในฐานะผู้ดูแลระบบที่ ศูนย์การจัดการ Power Platform เลือก การตั้งค่า>การตั้งค่าของผู้เช่า>ข้อมูลเชิงลึกของแอปพื้นที่ทำงาน ในบานหน้าต่าง ข้อมูลเชิงลึกของแอปพื้นที่ทำงาน เปลี่ยนตัวสลับเป็น เปิด และบันทึกการเปลี่ยนแปลงของคุณ เรียนรู้เพิ่มเติมใน การตั้งค่าผู้เช่า

สร้างทรัพยากร Application Insights

ส่งบันทึกที่ระบบสร้างจากแอปโดยการสร้างทรัพยากร Application Insights ที่จะจัดเก็บเหตุการณ์

เรียนรู้วิธีการสร้างทรัพยากรตามพื้นที่ทำงาน สำหรับ Application Insights ในพอร์ทัล Azure

เชื่อมต่อแอปของคุณกับ Application Insights

หมายเหตุ

  • เมื่อคุณระบุสตริงการเชื่อมต่อ อย่าลืมว่าสามารถส่งข้อมูลข้ามผู้เช่าได้ การติดตามเหตุการณ์จะถูกส่งไปยังทรัพยากรข้อมูลเชิงลึกของแอปที่สอดคล้องกับสตริงการเชื่อมต่อที่คุณตั้งค่าไว้สำหรับแอป แม้ว่าอินสแตนซ์ข้อมูลเชิงลึกของแอปเป้าหมายจะอยู่ในผู้เช่าอื่นที่ไม่ใช่แอปก็ตาม
  • โปรดใช้ความระมัดระวังเมื่อนำเข้าไฟล์ .msapp ที่มีอยู่ เนื่องจากอาจมีสตริงการเชื่อมต่อสำหรับข้อมูลเชิงลึกของแอป เปิดแอปด้วยตนเองหลังจากนำเข้าเพื่อตรวจสอบว่ามีการใช้สตริงการเชื่อมต่อ App Insights ที่ถูกต้อง
  1. ลงชื่อเข้าใช้ Power Apps

  2. เปิดแอปเพื่อแก้ไข

  3. เลือกออบเจ็กต์ แอป ในมุมมองแผนผังการนำทางด้านซ้าย และวาง สตริงการเชื่อมต่อ จากทรัพยากร Application Insights ของคุณ:

    ภาพหน้าจอของการเพิ่มสตริงการเชื่อมต่อ

  4. บันทึก และ เผยแพร่ แอปของคุณ

  5. เล่น แอปที่เผยแพร่ และเรียกดูผ่านหน้าจอต่างๆ

เมื่อคุณเรียกดูหน้าจอแอป เหตุการณ์จะถูกบันทึกโดยอัตโนมัติไปยัง Application Insights ซึ่งรวมถึงรายละเอียดการใช้งานเช่น:

  • ผู้ใช้เข้าถึงแอปจากที่ใด
  • ผู้ใช้ใช้อุปกรณ์ใดบ้าง
  • ประเภทของเบราว์เซอร์ที่ผู้ใช้ใช้

สำคัญ

เล่นแอปที่เผยแพร่เพื่อส่งเหตุการณ์ไปยัง Application Insights เหตุการณ์ไม่ถูกส่งไปที่ Application Insights เมื่อคุณดูตัวอย่างแอปใน Power Apps Studio

ดูเหตุการณ์ใน Application Insights

  1. ลงชื่อเข้าใช้ พอร์ทัล Azure และเปิดทรัพยากร Application Insights ที่คุณ สร้างก่อนหน้านี้

  2. ในบานหน้าต่างนำทางด้านซ้าย เลือกมุมมอง ผู้ใช้ ภายใต้ส่วน การใช้

    หมายเหตุ

    มุมมอง ผู้ใช้ แสดงรายละเอียดการใช้แอป เช่น:

    • จำนวนผู้ใช้ที่ดูแอป
    • จำนวนเซสชันผู้ใช้
    • จำนวนของเหตุการณ์ที่บันทึก
    • ระบบปฏิบัติการและรายละเอียดเวอร์ชันของเบราว์เซอร์ของผู้ใช้
    • ภูมิภาคและตำแหน่งที่ตั้งของผู้ใช้

    เรียนรู้เพิ่มเติมเกี่ยวกับผู้ใช้ เซสชัน และการวิเคราะห์เหตุการณ์ใน Application Insights

  3. เลือกเซสชันของผู้ใช้เพื่อดูรายละเอียดเฉพาะ เช่น ระยะเวลาเซสชันและหน้าจอที่เข้าชม

    ภาพหน้าจอของรายละเอียดการใช้งานสำหรับผู้ใช้

  4. ในบานหน้าต่างนำทางด้านซ้าย เลือก เหตุการณ์ ภายใต้ส่วน การใช้ คุณสามารถดูสรุปของหน้าจอทั้งหมดที่ดูผ่านทุกเซสชันของแอป

    ภาพหน้าจอของรายละเอียดกิจกรรมสำหรับแอป

สร้างเหตุการณ์การติดตามที่กำหนดเอง

เขียนการติดตามที่กำหนดเองไปยัง Application Insights เพื่อวิเคราะห์ข้อมูลเฉพาะแอปของคุณ ฟังก์ชัน ติดตาม ช่วยให้คุณเก็บรวบรวม:

  • ข้อมูลการใช้งานแบบละเอียดสำหรับการควบคุมบนหน้าจอ
  • ผู้ใช้รายใดที่กำลังเข้าถึงแอปของคุณ
  • เกิดข้อผิดพลาดอะไรขึ้น

การติดตามช่วยให้คุณวินิจฉัยปัญหาโดยการส่งเส้นทางข้อมูลเมื่อผู้ใช้เรียกดูแอปและดำเนินการต่างๆ ข้อความติดตามที่ส่งถึง Application Insights มีความรุนแรงหนึ่งในสาม:

  • ข้อมูล
  • คำเตือน
  • Error

ส่งข้อความติดตามด้วยความรุนแรงที่เหมาะสมตามสถานการณ์ คุณสามารถสอบถามข้อมูล และดำเนินการตามความรุนแรง

หมายเหตุ

หากคุณกำลังบันทึกข้อมูลส่วนบุคคลใดๆ โปรดระวังภาระผูกพันของคุณเกี่ยวกับกฎหมายและข้อบังคับด้านความเป็นส่วนตัวต่างๆ อ้างถึง ศูนย์ความเชื่อถือของ Microsoft และ พอร์ทัลความเชื่อถือของบริการ สำหรับข้อมูลเพิ่มเติม

สร้างส่วนประกอบในแอปของคุณเพื่อรวบรวมความคิดเห็นในแต่ละหน้าจอและบันทึกเหตุการณ์ไปยัง Application Insights

  1. ลงชื่อเข้าใช้ Power Apps

  2. เลือก แอป ในบานหน้าต่างการนำทางด้านซ้าย จากรายการแอป เลือกแอป Kudos จากนั้นเลือก แก้ไข

    หมายเหตุ

    นอกจากนี้คุณยังสามารถ สร้าง แอปใหม่ หรือ แก้ไข แอปที่มีอยู่แทน

  3. เลือก ส่วนประกอบ ใน มุมมองทรี:

    ส่วนประกอบ

  4. เลือก องค์ประกอบใหม่ จากนั้นปรับขนาดความกว้างเป็น 200 และความสูงเป็น 75:

    ความสูงและความกว้าง

  5. เลือก แทรก จากเมนู จากนั้นเลือก ไอคอน เพื่อเพิ่ม Emoji - หน้าบึ้ง และ Emoji - ยิ้ม:

    เพิ่มไอคอน

  6. เลือก คุณสมบัติแบบกำหนดเองใหม่ เพื่อสร้างคุณสมบัติที่กำหนดเอง:

    สร้างคุณสมบัติแบบกำหนดเอง

  7. ป้อนคุณสมบัติ ชื่อ และ ชื่อที่แสดง (เช่น FeedbackSceen)

  8. ป้อนคำอธิบายคุณสมบัติ

  9. เลือก ประเภทคุณสมบัติ เช่น ข้อมูลป้อนเข้า และ ประเภทข้อมูล เช่น หน้าจอ:

    คุณสมบัติแบบกำหนดเอง

    หมายเหตุ

    คุณสมบัติอินพุตช่วยให้คุณบันทึกชื่อหน้าจอและส่วนประกอบของหน้าจอเพื่อบันทึกข้อมูลนี้ไปยัง Application Insights

  10. เลือกองค์ประกอบใน มุมมองทรี เลือก การดำเนินการเพิ่มเติม () แล้วเลือก เปลี่ยนชื่อ เพื่อกำหนดชื่อส่วนประกอบด้วยชื่อที่มีความหมายเช่น FeedbackComponent

    เปลี่ยนชื่อองค์ประกอบและไอคอน

  11. เลือกไอคอน เลือก การดำเนินการเพิ่มเติม () แล้วเลือก เปลี่ยนชื่อ เพื่อเปลี่ยนชื่อไอคอนด้วยชื่อที่มีความหมายเช่น FrownIcon และ SmileIcon

  12. เลือก FrownIcon เลือกคุณสมบัติ OnSelect และจากนั้นป้อนนิพจน์ต่อไปนี้ในแถบสูตร:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeedbackValue: "-1"
           }
         );
    Notify("Thanks for your feedback!");
    

    สูตรไอคอนหน้าบึ้ง

    หมายเหตุ

    สูตรส่ง ชื่อผู้ใช้อีเมลผู้ใช้หน้าจอภาพ และ ข้อคิดเห็น (ด้วยค่า -1) ไปยัง Application Insights

  13. เลือก SmileIcon เลือกคุณสมบัติ OnSelect และจากนั้นป้อนนิพจน์ต่อไปนี้ในแถบสูตร:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeebackValue: "1"
           }
         );
    Notify("Thanks for your feedback!");
    
  14. เพิ่มส่วนประกอบลงในหน้าจอใดหน้าจอหนึ่งในแอปของคุณ:

    เพิ่มส่วนประกอบข้อคิดเห็น

  15. เลือก บันทึก จากนั้นเลือก เผยแพร่ เพื่อบันทึกและเผยแพร่แอปของคุณ

  16. เล่นแอปที่เผยแพร่แล้ว และส่งข้อคิดเห็นหน้ายิ้มและหน้าบึ้งจากหน้าจอ

    สำคัญ

    คุณต้องเล่นแอปที่เผยแพร่เพื่อส่งเหตุการณ์ไปยัง Application Insights เหตุการณ์จะไม่ถูกส่งไปที่ Application Insights เมื่อคุณดูตัวอย่างแอปใน Power Apps Studio

    เล่นแอปที่เผยแพร่

วิเคราะห์ข้อมูลที่กำหนดเองใน Application Insights

ตอนนี้คุณสามารถเริ่มวิเคราะห์ข้อมูลที่คุณส่งโดยใช้ ติดตาม ฟังก์ชันจากแอปของคุณใน Application Insights

  1. ลงชื่อเข้าใช้ พอร์ทัล Azure และเปิดทรัพยากร Application Insights ที่คุณสร้างก่อนหน้านี้

    เลือก Application Insights

  2. เลือก บันทึก ภายใต้ การตรวจสอบ ในบานหน้าต่างนำทางซ้าย

    เลือก บันทึก

  3. ป้อนคิวรีต่อไปนี้แล้วเลือก เรียกใช้ เพื่อดูความคิดเห็นจากแอปของคุณ:

    traces
    | where message == "App Feedback"
    | order by timestamp
    

    ดูข้อคิดเห็นแอป

  4. เลือกแถวในผลลัพธ์และขยายฟิลด์ customDimensions

    ค่าสำหรับ หน้าจอภาพชื่อผู้ใช้อีเมลผู้ใช้ และ FeedbackValue สำหรับเหตุการณ์ OnSelect ของไอคอนหน้ายิ้มหรือหน้าบึ้งในองค์ประกอบของคุณได้รับการบันทึกแล้ว ค่ายังถูกบันทึกไว้สำหรับแต่ละเหตุการณ์ที่ส่งไปยัง Application Insights เช่น appIdappName และ appSessionId

    ขยายมิติที่กำหนดเอง

  5. ใช้การสอบถามตัวอย่างต่อไปนี้เพื่อขยายคุณสมบัติของมิติที่กำหนดเอง JSON และฉายคอลัมน์ในมุมมองผลลัพธ์

    traces
        | extend customdims = parse_json(customDimensions)
        | where message == "App Feedback"
        | project timestamp
            , message
            , AppName = customdims.['ms-appName']
            , AppId = customdims.['ms-appId']
            , FeedbackFrom = customdims.UserEmail
            , Screen = customdims.Screen
            , FeedbackValue = customdims.FeedbackValue
        | order by timestamp desc
    

    ขยายการสอบถามมิติที่กำหนดเอง

    เคล็ดลับ

    บันทึกการสอบถาม มีประสิทธิภาพ ใช้เพื่อเข้าร่วมหลายตาราง รวมข้อมูลจำนวนมาก และดำเนินการที่ซับซ้อน เรียนรู้เพิ่มเติมเกี่ยวกับบันทึกการสอบถาม

วิเคราะห์ข้อมูลวงจรชีวิตของแอปใน Application Insights

เหตุการณ์สรุปเซสชันจะถูกบันทึกหนึ่งครั้งต่อเซสชัน และมีข้อมูลเกี่ยวกับความสำเร็จในการเปิดแอป เซสชันการเปิดแอปที่เหมาะสมและไม่เหมาะสม และเมตริกประสิทธิภาพการเปิดแอป

ขีดจำกัด

เหตุการณ์เหล่านี้ถูกต้องสำหรับแอปพื้นที่ทำงานในเว็บเบราว์เซอร์ แอปเหล่านี้ไม่สามารถใช้งานสำหรับแอปที่ทำงานใน Power Apps บนมือถือ และค่าอาจไม่พร้อมใช้งานหรือถูกต้องเสมอไปสำหรับเพจที่กำหนดเอง

นี่คือตัวอย่างคิวรีที่แสดงวิธีเข้าถึงเหตุการณ์สรุปเซสชันและฟิลด์ที่มีอยู่ทั้งหมด:

customEvents 
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" 
// 
| extend cd = parse_json(customDimensions) 
// 
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) 
| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"]) 
| extend unsuccessfulReason = tostring(sessionSummary["unsuccessfulReason"]) 
| extend appLoadResult = tostring(sessionSummary["appLoadResult"]) 
| extend appLoadNonOptimalReason = 
tostring(sessionSummary["appLoadNonOptimalReason"]) 
// 
| extend timeToAppInteractive = todouble(sessionSummary["timeToAppInteractive"]) 
| extend timeToAppFullLoad = todouble(sessionSummary["timeToAppFullLoad"]) 
// 
| project 
    timestamp, 
    session_Id, 
    successfulAppLaunch, 
    unsuccessfulReason, 
    appLoadResult, 
    appLoadNonOptimalReason, 
    timeToAppInteractive, 
    timeToAppFullLoad 
| limit 5 

ฟิลด์ต่อไปนี้ช่วยวัดความสำเร็จในการเปิดแอปและเวลาแฝงของเครื่องหมายประสิทธิภาพที่เชื่อมโยงกับประสบการณ์ของผู้ใช้ปลายทาง

เขตข้อมูล Description
successfulAppLaunch ค่าบูลีนที่ระบุว่าเซสชันเปิดแอปสำเร็จหรือไม่
unsuccessfulReason หากเซสชันไม่สามารถเปิดแอปได้แสดงว่ามีสาเหตุ/ข้อผิดพลาด ฟิลด์นี้จะเป็นสตริงว่างหากเซสชันสำเร็จ
appLoadResult ระบุว่าเซสชันเหมาะสมที่สุดหรือไม่ ค่าที่เป็นไปได้: เหมาะสมที่สุด, อื่น ๆ
appLoadNonOptimalReason หากเซสชันไม่เหมาะสม ให้ระบุเหตุผล ค่าที่เป็นไปได้: ต้องมีการโต้ตอบ, ถูกจำกัด, นำทางออกจากหน้าจอ, อื่นๆ
timeToAppInteractive ระยะเวลาเป็นมิลลิวินาทีเพื่อให้เซสชันแอปถึงสถานะแบบโต้ตอบ ในสถานะนี้ ผู้ใช้สามารถเริ่มโต้ตอบกับหน้าจอแรกได้ แต่ข้อมูลอาจโหลดไม่ครบ
timeToAppFullLoad ระยะเวลาเป็นมิลลิวินาทีเพื่อให้เซสชันแอปถึงสถานะโหลดเต็ม ซึ่งคำขอข้อมูลทั้งหมดสำหรับหน้าจอแรกได้โหลดเสร็จแล้ว

การสอบถามตัวอย่าง

อัตราความสำเร็จในการเปิดแอป

คิวรีนี้จะแสดงอัตราความสำเร็จในการเปิดแอปตามวัน สามารถใช้เพื่อประเมินการเพิ่มขึ้นอย่างรวดเร็วหรือแนวโน้มของปัญหาที่ผู้ใช้อาจประสบ

customEvents 
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" 
| extend cd = parse_json(customDimensions) 
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) 
| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"]) 
| summarize 
sessions_total = dcount(session_Id), 
sessions_success = dcountif(session_Id, successfulAppLaunch == true) 
by bin(timestamp, 1d) 
| extend successRate =  
100.0 * (todouble(sessions_success) / todouble(sessions_total)) 
| project timestamp, successRate 
| render timechart

จำนวนเซสชันที่ไม่สำเร็จตามเหตุผล

คิวรีนี้จะแสดงจำนวนเซสชันที่ไม่สำเร็จด้วยสาเหตุ/ข้อผิดพลาด สามารถใช้เพื่อแก้ไขข้อบกพร่องความล้มเหลวในการเปิดแอปหรือประเมินแนวโน้มของปัญหาที่ผู้ใช้อาจประสบ

customEvents 
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" 
| extend cd = parse_json(customDimensions) 
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) 
| extend successfulAppLaunch = tobool(sessionSummary["successfulAppLaunch"]) 
| extend unsuccessfulReason = tostring(sessionSummary["unsuccessfulReason"]) 
| where successfulAppLaunch == false 
| summarize 
count() 
by unsuccessfulReason, bin(timestamp, 1d) 
| render timechart

ประสิทธิภาพการเปิดแอป

คิวรีนี้จะแสดงเมตริกประสิทธิภาพการเปิดแอปตามวัน สามารถใช้เพื่อประเมินแนวโน้มประสิทธิภาพเมื่อเวลาผ่านไปหรือหลังจากทำการเปลี่ยนแปลง เราขอแนะนำ:

  1. ใช้เปอร์เซ็นไทล์ที่ 75 ของฟิลด์ timeToAppInteractive และ timeToAppFullLoad เพื่อหลีกเลี่ยงสัญญาณรบกวนที่เกิดจากค่าผิดปกติ
  2. การกรองเฉพาะเซสชันที่เหมาะสมที่สุดเพื่อหลีกเลี่ยงสัญญาณรบกวนในข้อมูลที่เกิดจากกรณีที่คาดไว้ เช่น เซสชันที่มีการโต้ตอบกับผู้ใช้ เซสชันที่โหลดแอปในแท็บพื้นหลัง ฯลฯ
customEvents 
| where name == "PowerAppsClient.PublishedApp.SessionLoadSummary" 
| extend cd = parse_json(customDimensions) 
| extend sessionSummary = parse_json(tostring(cd["ms-sessionSummary"])) 
| extend appLoadResult = tostring(sessionSummary["appLoadResult"]) 
| extend timeToAppInteractive = todouble(sessionSummary["timeToAppInteractive"]) 
| extend timeToAppFullLoad = todouble(sessionSummary["timeToAppFullLoad"]) 
| where appLoadResult == "optimal" 
| summarize 
percentile(timeToAppInteractive, 75), 
percentile(timeToAppFullLoad, 75) 
by bin(timestamp, 1d) 
| render timechart

สถานะการโหลดแอปเมื่อการเรียก HTTP

มีส่วนหัวคำขอใหม่ x-ms-app-load-state ที่ระบุว่าการเรียก HTTP มีส่วนช่วยในการเริ่มต้นแอปหรือไม่ โดยเฉพาะอย่างยิ่ง สามารถใช้เพื่อพิจารณาว่าการเรียก HTTP ใดที่ส่งผลต่อ timeToAppFullLoad ข้างต้น

ส่วนหัวสามารถเป็นหนึ่งในสองค่า:

มูลค่า Description
ทีทีเอฟแอล ระบุว่าคำขอมีส่วนสนับสนุน timeToAppFullLoad
โพสต์ TTFL ระบุว่าคำขอไม่ได้มีส่วนร่วมใน timeToAppFullLoad

นี่คือคิวรีตัวอย่างที่แสดงวิธีเข้าถึงค่าส่วนหัวและฉายภาพในคอลัมน์ appLoadState:

dependencies 
| extend cd = parse_json(customDimensions) 
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) 
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) 
| project timestamp, session_Id, appLoadState, name, duration 
| limit 5

จำนวนการเรียก HTTP ที่เอื้อต่อการโหลดแอปเต็มรูปแบบ

คิวรีนี้จะแสดงจำนวนเฉลี่ยของการเรียก HTTP ที่ส่งผลต่อเวลาในการโหลดแอปเต็มรูปแบบในแต่ละวัน สามารถใช้เพื่อประเมินจำนวนการเรียกที่แอปทำในระหว่างการเริ่มต้นซึ่งอาจส่งผลให้ประสิทธิภาพต่ำ

dependencies 
| extend cd = parse_json(customDimensions) 
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) 
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) 
| where appLoadState == "TTFL" 
| summarize httpCalls = count() by session_Id, bin(timestamp, 1d) 
| summarize avg(httpCalls) by timestamp 
| render timechart

ระยะเวลาของ HTTP ที่เอื้อต่อการโหลดแอปเต็มรูปแบบ

คิวรีนี้จะแสดงระยะเวลารวมของการเรียก HTTP ที่ส่งผลต่อ timeToAppFullLoad ตามวัน สามารถใช้เพื่อประเมินผลกระทบโดยรวมของการเรียก HTTP ต่อประสิทธิภาพการเริ่มต้นแอป

dependencies 
| extend cd = parse_json(customDimensions) 
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) 
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) 
| where appLoadState == "TTFL" 
| summarize httpCallDuration = sum(duration) by session_Id, bin(timestamp, 1d) 
| summarize percentile(httpCallDuration, 80) by timestamp 
| render timechart

ระยะเวลาของ HTTP ที่เอื้อต่อการโหลดแอปเต็มรูปแบบตาม URL

คิวนี้จะแสดงจำนวนและระยะเวลาของการเรียก HTTP ที่เอื้อต่อ timeToAppFullLoad ตาม URL เช่นเดียวกับข้างต้น ซึ่งสามารถใช้เพื่อระบุการเรียก HTTP ที่ช้าเฉพาะที่ส่งผลต่อประสิทธิภาพการเริ่มต้นแอป

dependencies 
| extend cd = parse_json(customDimensions) 
| extend requestHeaders = parse_json(tostring(cd["requestHeaders"])) 
| extend appLoadState = tostring(requestHeaders["x-ms-app-load-state"]) 
| where appLoadState == "TTFL" 
| summarize 
count(), percentile(duration, 80) by name

ตรวจสอบข้อผิดพลาดที่ไม่สามารถจัดการได้ (ทดลอง)

[ส่วนนี้ประกอบด้วยเอกสารรุ่นก่อนวางจำหน่าย และอาจจะมีการเปลี่ยนแปลงในอนาคต]

สำคัญ

  • นี่คือคุณลักษณะทดลอง
  • คุณลักษณะทดลองไม่ได้มีไว้สำหรับการนำไปใช้งานจริงและอาจมีการจำกัดฟังก์ชันการทำงาน คุณลักษณะเหล่านี้สามารถใช้ได้ก่อนการเปิดตัวอย่างเป็นทางการ เพื่อให้ลูกค้าสามารถเข้าใช้งานได้ก่อนเวลาและให้ข้อคิดเห็น

คุณไม่สามารถคาดการณ์หรือวางแผนสำหรับทุกข้อผิดพลาดที่อาจเกิดขึ้นในขณะที่แอปของคุณทำงานได้ตลอดเวลา ข้อผิดพลาดของสูตร Power Fx ที่ไม่ได้รับการจัดการจะถูกรายงานไปยังผู้ใช้เป็นข้อความแบนเนอร์ นอกจากนี้ยังสามารถรายงานไปยัง Application Insights เพื่อแสดงความถี่และความรุนแรงได้โดยไม่ต้องพึ่งพาผู้ใช้แอปในการรายงานปัญหา คุณยังสามารถ ตั้งค่าการแจ้งเตือนตามเวลาจริง เมื่อเกิดข้อผิดพลาดรันไทม์ ให้ใช้แนวทางเชิงรุกมากขึ้น

เปิดใช้งานข้อผิดพลาดในการส่งผ่านไปยัง Application Insights

เปิดใช้งานการตั้งค่าที่ให้ Power Apps ส่งข้อผิดพลาดรันไทม์ที่ไม่สามารถจัดการไปยัง Azure Application Insights

คำเตือน

การเปิดใช้งานการตั้งค่า ส่งข้อผิดพลาดไปยัง Azure Application Insights อาจมีค่าใช้จ่ายเพิ่มเติมสำหรับการจัดเก็บบันทึก Application Insights

  1. เปิด แอปพื้นที่ทำงาน เพื่อแก้ไข
  2. เลือก การตั้งค่า>การอัปเดต>การทดลอง และเปิด ส่งข้อผิดพลาดไปยัง Azure Application Insights
  3. บันทึกแล้วเผยแพร่แอปของคุณ

เหตุการณ์ข้อผิดพลาดใน Application Insights

ข้อผิดพลาด Power Fx ที่ไม่สามารถจัดการได้ซึ่งผู้ใช้พบขณะรันไทม์ของแอปจะถูกรายงานไปยังตารางการติดตาม ข้อผิดพลาดที่ไม่สามารถจัดการสามารถระบุและแยกความแตกต่างจากเหตุการณ์ข้อผิดพลาดอื่นๆ ได้ด้วยข้อความเหตุการณ์ "ข้อผิดพลาดที่ไม่สามารถจัดการได้" มิติ "ระดับความรุนแรง" ของเหตุการณ์เหล่านี้คือ 3 (TraceSeverity.Error)

ข้อความแสดงข้อผิดพลาดโดยละเอียดมีอยู่ในมิติ "ข้อผิดพลาด" ของคุณสมบัติ customDimension ในสถานการณ์ที่เกิดข้อผิดพลาดหลายรายการระหว่างการดำเนินการเดียวกัน ข้อผิดพลาดจะถูกรวมไว้ในมิติ "ข้อผิดพลาด" ของเหตุการณ์การติดตามเดียว ข้อความแสดงข้อผิดพลาดตรงกับข้อความที่รายงานใน Monitor ระหว่างเซสชันการแก้ไขข้อบกพร่องแบบสด

แบบสอบถามตัวอย่างนี้จะระบุข้อผิดพลาดที่ไม่สามารถจัดการได้ และขยายข้อความแสดงข้อผิดพลาดทั้งหมดในเหตุการณ์การติดตาม:

traces
    | where message == "Unhandled error"
    | extend customdims = parse_json(customDimensions)
    | extend errors = parse_json(tostring(customdims.['errors']))
    | mv-expand errors
    | project timestamp
        , itemId //unique identifier for the trace event
        , AppName = customdims.['ms-appName']
        , AppId = customdims.['ms-appId']
        , errors = errors.['Message']
    | order by timestamp desc

ภาพหน้าจอของเอาต์พุตตัวอย่างสำหรับคิวรีตัวอย่าง

การติดตามความสัมพันธ์ (ทดลอง)

[ส่วนนี้ประกอบด้วยเอกสารรุ่นก่อนวางจำหน่าย และอาจจะมีการเปลี่ยนแปลงในอนาคต]

สำคัญ

  • นี่คือคุณลักษณะทดลอง
  • คุณลักษณะทดลองไม่ได้มีไว้สำหรับการนำไปใช้งานจริงและอาจมีการจำกัดฟังก์ชันการทำงาน คุณลักษณะเหล่านี้สามารถใช้ได้ก่อนการเปิดตัวอย่างเป็นทางการ เพื่อให้ลูกค้าสามารถเข้าใช้งานได้ก่อนเวลาและให้ข้อคิดเห็น

การเชื่อมต่อกับข้อมูลและบริการภายนอกเป็นสิ่งจำเป็นสำหรับแอปส่วนใหญ่ การติดตามสหสัมพันธ์สร้างและเผยแพร่ข้อมูลบริบทเพื่อเชื่อมโยงบันทึกที่ระบบสร้างขึ้นในแอปพื้นที่ทำงานและการเชื่อมต่อโดยอยู่ภายใต้ข้อจำกัดบางประการ ตัวอย่างเช่น แอปของคุณอาจเรียกตัวเชื่อมต่อแบบกำหนดเองที่เรียกใช้ฟังก์ชัน Azure หรือ REST API อื่น การติดตามความสัมพันธ์ช่วยให้คุณเชื่อมโยงการดำเนินการในแอปกับการเรียก API พื้นฐานในระดับต่างๆ สิ่งนี้มีประโยชน์สำหรับการแก้ไขปัญหา

การติดตามความสัมพันธ์แอปพื้นที่ทำงานใช้การติดตามบริบทและเป็นไปตามข้อกำหนด W3C

เปิดใช้งานการติดตามความสัมพันธ์

คำเตือน

การเปิดใช้งานการตั้งค่านี้อาจมีค่าใช้จ่ายเพิ่มเติมที่เกี่ยวข้องกับการจัดเก็บบันทึก Application Insights

  1. หากต้องการเปิดใช้งานการติดตามความสัมพันธ์ ให้เปิดแอปพื้นที่ทำงานเพื่อแก้ไข
  2. เลือก การตั้งค่า>การอัปเดต>การทดลอง> และเปิด เปิดใช้งานการติดตามความสัมพันธ์ Azure Application Insights
  3. บันทึกและเผยแพร่แอป

ภาพหน้าจอของการตั้งค่าเพื่อเปิดใช้งานการติดตามความสัมพันธ์ Azure Application Insights

ข้อจำกัด

  • การติดตามความสัมพันธ์ใช้งานได้กับตัวเชื่อมต่อแบบกำหนดเองเท่านั้น ไม่รองรับตัวเชื่อมต่อชนิดอื่นๆ
  • คำขอ HTTP ถูกจับใน Application Insights เฉพาะในกรณีที่บริการที่เชื่อมต่อ ยังเชื่อมต่อกับ Application Insights

การใช้งานการติดตามความสัมพันธ์

เมื่อเปิดใช้งาน การติดตามความสัมพันธ์จะเพิ่มเหตุการณ์บันทึกที่ระบบสร้างขึ้นใหม่ในตาราง การขึ้นต่อกัน อินสแตนซ์ Application Insights ของแอปพื้นที่ทำงาน เหตุการณ์นี้จะถูกบันทึกไว้ในเวลาที่ได้รับการตอบกลับจากการโทรผ่านเครือข่าย เหตุการณ์การขึ้นต่อกันจะบันทึกรายละเอียดของการโทรในเครือข่าย รวมถึงส่วนหัวของคำขอและการตอบสนอง รหัสสถานะการตอบสนอง และระยะเวลาของการโทร

ตัวอย่างเหตุการณ์ที่บันทึกไว้ในตารางการขึ้นต่อกัน

หากบริการที่เชื่อมต่อนั้นเชื่อมต่อกับ Application Insights เหตุการณ์บันทึกเพิ่มเติมที่ระบบสร้างขึ้นเพื่อบันทึกคำขอถูกสร้างขึ้นในตาราง คำขอ ของอินสแตนซ์ Application Insights ของบริการ บริการ Azure บางอย่าง เช่น Azure Functions สามารถเชื่อมต่อได้โดยไม่ต้องเขียนโค้ดใดๆ จากพอร์ทัล Azure ทั้งแอปพื้นที่ทำงานหรือหลายแอป และบริการที่เชื่อมต่อสามารถเชื่อมต่อกับอินสแตนซ์ Application Insights เดียวกันได้

ตัวอย่างเหตุการณ์ที่บันทึกไว้ในตารางคำขอ

เข้าร่วมการเรียกเครือข่ายสำหรับตัวเชื่อมต่อที่รองรับกับบันทึกอื่นๆ ที่ระบบสร้างขึ้นในมิติ "operation_Id" คิวรีต่อไปนี้แสดงการเรียกเครือข่ายพร้อมกับการติดตามเหตุการณ์ที่ปล่อยออกมาระหว่างเซสชันของแอป

traces | union dependencies | union requests | union pageViews | union customEvents
| project timestamp
    , itemType
    , name
    , operation_Name
    , message
    , severityLevel
    , customDimensions
    , operation_Id
    , operation_ParentId
| where operation_Id == "0a7729e3e83c4e4d93cb4f51149f73b9" //placeholder operation_Id, replace
| order by timestamp asc

ภาพหน้าจอของเอาต์พุตตัวอย่างสำหรับคิวรีตัวอย่างก่อนหน้า

ส่งออกข้อมูลไปยัง Power BI

คุณสามารถส่งออกข้อมูล Application Insights ของคุณและผลลัพธ์การสอบถามไปยัง Power BI สำหรับการวิเคราะห์และการนำเสนอข้อมูล

  1. ลงชื่อเข้าใช้ พอร์ทัล Azure และเปิดทรัพยากร Application Insights ที่คุณตั้งค่าก่อนหน้านี้:

  2. เลือก บันทึก ภายใต้ การตรวจสอบ ในบานหน้าต่างนำทางซ้าย

  3. ในหน้าต่างการสอบถามการวิเคราะห์บันทึก เลือกเมนู ส่งออก

  4. เลือก ส่งอกไปยัง Power BI (คิวรี M) เพื่อดาวน์โหลดไฟล์คิวรี Power BI

    ภาพหน้าจอของตัวเลือกส่งออกคิวรี Power BI ในหน้าต่างคิวรีการวิเคราะห์บันทึก

  5. เปิดไฟล์ที่ดาวน์โหลดในตัวแก้ไขข้อความและคัดลอกการสอบถามไปยังคลิปบอร์ด

  6. เปิด Power BI

  7. เลือก รับข้อมูล ใน Ribbon หน้าแรก แล้วเลือก การสอบถามเปล่า:

    ภาพหน้าจอของตัวเลือกคิวรีเปล่าในเมนูรับข้อมูลของ Power BI

  8. ในหน้าต่างคิวรี ให้เลือก ตัวแก้ไขขั้นสูง วางคิวรีลงในหน้าต่าง เลือก เสร็จ แล้วเลือก ปิดและนำไปใช้

    ภาพหน้าจอของตัวแก้ไขขั้นสูงใน Power BI ที่มีการวางคิวรีลงในหน้าต่าง

สร้างแผนภูมิและการจัดรูปแบบการแสดงใน Power BI เพื่อแสดงความคิดเห็นจากแอปของคุณ และทำการตัดสินใจตามข้อมูล

ภาพหน้าจอของแผนภูมิและการจัดรูปแบบการแสดงใน Power BI ที่แสดงความคิดเห็นของแอป

บริบทและมิติเหตุการณ์การติดตามเริ่มต้น

มิติเริ่มต้นจะถูกเพิ่มเข้าไปในคุณสมบัติ customDimensions ในแต่ละเหตุการณ์การติดตาม มิติเหล่านี้ระบุแอปพลิเคชันและเซสชันแอปพลิเคชันที่มีเหตุการณ์เกิดขึ้น หากคุณบันทึกข้อมูลที่กำหนดเองเพิ่มเติมโดยใช้ฟังก์ชัน Trace ข้อมูลเหล่านั้นจะปรากฏในมิติที่กำหนดเองด้วย

ชื่อมิติ แสดง
ms-appId รหัสแอปพลิเคชันของแอปที่ส่งเหตุการณ์
ms-appname ชื่อแอปพลิเคชันของแอปที่ส่งเหตุการณ์
ms-appSessionId รหัสเซสชันแอปพลิเคชัน ค่านี้อาจไม่สามารถเติมได้ในบางสถานการณ์ เมื่อพร้อมใช้งาน ค่านี้จะแทนที่มิติข้อมูล sessionID ของ Application Insights มาตรฐาน
ms-tenantID รหัสเฉพาะของผู้เช่าที่เผยแพร่แอปพลิเคชัน
ms-environmentId ชื่อของสภาพแวดล้อมที่เผยแพร่แอปพลิเคชัน
userId รหัสเฉพาะของผู้ใช้ที่เชื่อมโยงกับเซสชัน
ms-duration ค่าที่กำหนดซึ่งวัดเวลาที่ผู้ใช้ใช้เพื่อนำทางจากหน้าจอหนึ่งไปยังอีกหน้าจอหนึ่ง ค่านี้จะแทนที่มิติระยะเวลา PageView ของ Application Insights มาตรฐาน
sessionId รหัสเซสชันที่ใช้เชื่อมโยงเหตุการณ์ทั้งหมดที่เกี่ยวข้องกับเซสชันแอปพลิเคชันเดียว ค่านี้จะแสดงอยู่เสมอ และแนะนำสำหรับการทำความเข้าใจจำนวนเซสชันที่ไม่ซ้ำ ค่านี้นำมาจากรหัสเซสชันของโปรแกรมเล่นและแสดงเมื่อดูรายละเอียดเซสชันขณะเล่นแอป บางครั้ง รหัสเซสชันอาจได้รับค่าที่ Application Insights สร้างขึ้นเป็นค่าเริ่มต้น แบบสุ่ม และไม่ซ้ำกัน ค่าเริ่มต้นนี้ไม่น่าเชื่อถือและไม่สัมพันธ์กับพารามิเตอร์เฉพาะแอปใดๆ
ระยะเวลา ค่าที่กำหนดซึ่งวัดเวลาที่ผู้ใช้ใช้เพื่อนำทางจากหน้าจอหนึ่งไปยังอีกหน้าจอหนึ่ง ค่านี้จะตรงกับระยะเวลาที่รายงานโดยมิติ ms-duration
ms-isTest ระบุว่าเซสชันเชื่อมโยงกับผู้ดำเนินการทดสอบ Test Studio หรือไม่
ms-currentScreenName ชื่อของหน้าที่ผู้ใช้กำลังนำทางจาก (มีอยู่สำหรับเหตุการณ์การนำทางของหน้า)
ms-targetScreenName ชื่อของหน้าที่ผู้ใช้กำลังนำทางไป (แสดงสำหรับเหตุการณ์การนำทางของหน้า)

สถานการณ์ที่ไม่รองรับ

Application Insights ไม่รองรับสถานการณ์เหล่านี้

  • เหตุการณ์ของผู้เล่นแบบออฟไลน์จะไม่ถูกบันทึก
  • เหตุการณ์จากแอปสำหรับอุปกรณ์เคลื่อนที่ (iOS และ Android) จะไม่ถูกบันทึกเมื่อแอปถูกระงับ