แชร์ผ่าน


มีข้อมูลใดบ้างสำหรับแอปแบบจำลอง

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

มีการโหลดหน้าประเภทใดบ้าง

พิมพ์ข้อความ มีข้อมูลประสิทธิภาพและการวินิจฉัย
โหลดแดชบอร์ด (UCI) – เบราว์เซอร์ ตกลง
โหลดแดชบอร์ด (UCI) – แบบฝัง ตกลง
โหลดแดชบอร์ด (UCI) - MobileApplication ตกลง
โหลดแดชบอร์ด (UCI) – MailApp ตกลง
โหลดแดชบอร์ด (UCI) - MobileApplication ตกลง
EditForm Load (UCI) – เบราว์เซอร์ ตกลง
EditForm Load (UCI) – แบบฝัง ตกลง
EditForm Load (UCI) – MailApp ตกลง
EditForm Load (UCI) - MobileApplication ตกลง
โหลดรายการเอนทิตี (UCI) – เบราว์เซอร์ ตกลง
โหลดรายการเอนทิตี (UCI) - แบบฝัง ตกลง
โหลดรายการเอนทิตี (UCI) – MailApp ตกลง
โหลดรายการเอนทิตี (UCI) - MobileApplication ตกลง
เปิดใช้แอป - (UCI) – เบราเซอร์ ตกลง
เปิดใช้แอป - (UCI) – แบบฝัง ตกลง
เปิดใช้แอป - (UCI) – MailApp ตกลง
เปิดใช้แอป - (UCI) – MobileApplication ตกลง
QuickCreateForm Load (UCI) – เบราว์เซอร์ ตกลง
QuickCreateForm Load (UCI) – แบบฝัง ตกลง
QuickCreateForm Load (UCI) – MailApp ตกลง
QuickCreateForm Load (UCI) – MobileApplication ตกลง
SaveForm ไม่สามารถใช้งานได้ในขณะนี้
CommandButton Actions ไม่สามารถใช้งานได้ในขณะนี้

ข้อมูลการโหลดหน้าอยู่ที่ไหน

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

มีคุณสมบัติอื่นๆ ใน customDimensions ที่ให้รายละเอียดเพิ่มเติมสำหรับการโหลดหน้า ส่วนติดต่อแบบรวม ตัวอย่างเช่น การสอบถามนี้ส่งคืนค่าสำหรับแอตทริบิวต์ทั้งหมดในตาราง pageViews

pageViews
| take 1

ตาราง pageViews ของ Application Insights

ตารางแอตทริบิวต์ pageViews ประกอบด้วย:

  • appModule: ชื่อโมดูลแอป
  • entityName: แอตทริบิวต์นี้มีอยู่เมื่อเกี่ยวข้อง มีอยู่ในชนิดหน้า เช่น EditForm, EntityList และ Dashboards เมื่อเป็น ผูกกับเอนทิตี ในบางสถานการณ์ ฟอร์มไม่ได้ผูกกับเอนทิตีและค่าจะปรากฏเป็น ไม่ได้กำหนด
  • formId: formId ระบุแบบฟอร์มเฉพาะเจาะจงและสามารถใช้เชื่อมโยงปัญหาที่ส่งผลต่อแบบฟอร์มนั้นโดยเฉพาะได้
  • hostType: เบราว์เซอร์/แอปพลิเคชันมือถือ/แบบฝัง
  • isBoot: นี่เป็นการโหลดครั้งแรกของเซสชันใช่ไหม
  • ประเภทโหลด
    • 0: การเข้าชมหน้าเว็บบางประเภทเป็นครั้งแรก (เช่น การเข้าชมฟอร์มครั้งแรก)
    • 1: การเข้าชมการกำหนดค่าบางประเภทเป็นครั้งแรก (เช่น การเข้าชมฟอร์มบัญชี)
    • 2: การเข้าชมเรกคอร์ดบางประเภทเป็นครั้งแรก (เช่น การเข้าชมเรกคอร์ด A2)
    • 3: มีการเยี่ยมชม URL ที่แน่นอนนี้ ก่อนหน้านี้
  • navigationOrigin: ประเภทของหน้าที่ผู้ใช้นำทางมา
  • networkConnectivityState: อุปกรณ์มีการเชื่อมต่อหรือไม่
  • pageName: ประเภทของการโหลดหน้า
  • serverConnectivityState: แอปเชื่อมต่อกับเซิร์ฟเวอร์หรือไม่
  • syncRequestTime: เวลาที่ใช้ในการรอการร้องขอแบบซิงโครนัส
  • coldLatency: การประมาณค่าครั้งแรกของเวลาแฝงของเครือข่าย ซึ่งรวมถึงเวลาการจับมือ SSL
  • warmLatency: การประมาณค่าเวลาแฝงของเครือข่ายในลำดับถัดไป ซึ่งเป็นเวลาแฝงที่คาดว่าจะเกิดขึ้นโดยทั่วไปสำหรับแต่ละคำขอ
  • warmThroughput: ปริมาณส่งข้อมูลโดยประมาณของเครือข่ายในหน่วย Kbps

สำหรับเหตุการณ์ Microsoft Dataverse ฟิลด์ ID หรือ operation_ParentId ใน Application Insights คือ x-ms-service-request-id operationId แมปไปยัง activityId ที่ส่วนหลังเพื่อวัตถุประสงค์ในการแก้ไขปัญหาและการร้องขอการสนับสนุน

มีข้อมูลประเภทใดบ้างสำหรับคำขอเครือข่ายขาออกของ UCI

สิ่งเหล่านี้เป็นการเรียกไปยังการขึ้นต่อกันอื่นๆ ที่ทำโดยส่วนติดต่อแบบรวม เพื่อแสดงหน้าบางหน้า พวกเขาอาจจะโทรออกไปยัง Dataverse หรือการบูรณาการอื่นๆ เช่น Azure DevOps หรือ Office ใช้การสอบถามต่อไปนี้เพื่อรับข้อมูลนี้ ซึ่งมีอยู่ในตารางการขึ้นต่อกันของคำขอ UCI:

dependencies
| where type == "UCI REQUEST"

ตารางการขึ้นต่อกันของคำขอ UCI มีฟิลด์ต่อไปนี้:

  • ชื่อ: URL ที่ถูกเรียกใช้โดย ส่วนติดต่อแบบรวม

  • เป้าหมาย: ปัจจุบันเหมือนกับ ชื่อ

  • สำเร็จ: ระบุว่าการโทรสำเร็จหรือล้มเหลว

  • UserId: รหัสผู้ใช้ระบบ Dataverse ของผู้ใช้ที่ลงชื่อเข้าใช้

  • ระยะเวลา: ระยะเวลาของการโทร

  • customDimensions: ประกอบด้วยแอตทริบิวต์ดังต่อไปนี้:

    Application Insights UCI REQUEST

    • appModule: appModule ที่กำลังเรียกใช้
    • bodySize: ขนาดของ การตอบ เข้ารหัสและถอดรหัส
    • cached: ระบุว่าคำขอจะส่งไปที่แคชในเครื่องหรือต้องไปที่เซิร์ฟเวอร์ วิธีนี้ใช้ไม่ได้ตามที่คาดไว้ หากผู้ใช้อยู่ในเบราว์เซอร์ Internet Explorer
    • ดาวน์โหลด: เวลาที่ใช้ในการดาวน์โหลด การตอบ
    • stall: เวลาที่คำขอกำลังรออยู่ในคิวเบราว์เซอร์
    • ttfb: เวลาที่ใช้ในการรอ การตอบกลับครั้งแรก หรือที่เรียกว่า "เวลาถึงไบต์แรก" เวลานี้จะบันทึกเวลาแฝงของการเดินทางไปกลับยังเซิร์ฟเวอร์ นอกเหนือจากเวลาที่ใช้ในการรอให้เซิร์ฟเวอร์ส่ง การตอบ
    • coldLatency: การประมาณค่าครั้งแรกของเวลาแฝงของเครือข่าย ซึ่งรวมถึงเวลาการจับมือ SSL
    • warmLatency: การประมาณค่าเวลาแฝงของเครือข่ายในลำดับถัดไป ซึ่งเป็นเวลาแฝงที่คาดว่าจะเกิดขึ้นโดยทั่วไปสำหรับแต่ละคำขอ
    • warmThroughput: ปริมาณส่งข้อมูลโดยประมาณของเครือข่ายในหน่วย Kbps

ค้นหาและวิเคราะห์สถานการณ์

เหตุใดผู้ใช้ของฉันบางคนจึงประสบกับความช้าในส่วนติดต่อแบบรวม

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

คุณสามารถใช้แอตทริบิวต์ warmLatency warmThroughput และ coldLatency เพื่อทำความเข้าใจการแบ่งเวลาที่ใช้ในการโหลดหน้าเว็บ และคำขอส่วนติดต่อแบบรวมอื่นๆ ตามที่แสดงในภาพต่อไปนี้

ความช้าของ Application Insights UCI

ในคำขอข้างต้น คำขอส่วนติดต่อแบบรวม ใช้เวลานานกว่าคำขอ Dataverse API (เว็บ API) จริง รายละเอียดในกรณีนี้คือ ระยะเวลาของการเรียก Dataverse API (56 ms) บวกกับค่าของ CustomDimensions.warmLatency (89 ms) ซึ่งรวมกันเกือบเท่าระยะเวลาของการดำเนินการทั้งหมด (144 ms) ค่า warmLatency บ่งบอกถึงความช้าสำหรับไคลเอ็นต์นั้นๆ และอาจเป็นปัญหาที่คุณสามารถวิเคราะห์ได้ที่ระดับผู้ใช้ โดยใช้การสอบถามต่อไปนี้:

dependencies
| where ['type'] == "UCI REQUEST"
| summarize avg(toint(customDimensions.warmLatency)), avg(toint(customDimensions.coldLatency)), avg(toint(customDimensions.warmThroughput)) by user_Id

pageViews
| summarize avg(toint(customDimensions.warmLatency)), avg(toint(customDimensions.coldLatency)), avg(toint(customDimensions.warmThroughput)) by user_Id

ฉันสามารถระบุได้ว่าผู้ใช้เข้าถึงระบบอย่างไร

แอตทริบิวต์ userAgent ในฟิลด์ customDimensions ในตาราง Application Insights คำขอ มีข้อมูลนี้ คุณสามารถใช้การสอบถามต่อไปนี้เพื่อดูภาพรวมของแหล่งที่มาต่างๆ ที่ผู้ใช้เข้าถึงระบบ:

pageViews
| summarize count() by tostring(customDimensions.userAgent), user_Id

dependencies
| where ['type'] == "UCI REQUEST"
เมื่อค่า customDimensions.userAgent เริ่มต้นด้วย ผู้ใช้เข้าใช้ระบบจากที่ไหน
Mozilla ชนิดเบราว์เซอร์ เวอร์ชัน
azure-logic-apps Azure Logic Apps
PowerApps Power Apps
Microsoft Office Excel Office Excel
พอร์ทัล พอร์ทัล
DynamicsDataIntegration Dynamics Data Integration
XrmToolBox.exe XrmToolBox
PluginRegistration การลงทะเบียนปลั๊กอิน
LogicAppsDesigner Logic Apps Designer
Apache-HttpClient ไคลเอ็นต์ Apache HTTP
Microsoft Flow Power Automate
UnifiedServiceDesk Unified Service Desk
PostmanRuntime Postman
OfficeGroupsConnector ตัวเชื่อมต่อกลุ่ม Office
Microsoft.ข้อมูล.แมชอัพ Power Query
Apache-Olingo Apache Olingo
Dalvik Android
Jakarta Commons-Http จาการ์ต้า
Informatica Informatica
axios Axios
node-fetch NodeJS
LinkedInBot LinkedInBot

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

pageViews
| summarize count() by tostring(customDimensions.hostType)

รูปภาพต่อไปนี้แสดงตัวอย่างชุดผลลัพธ์จากการสอบถามนี้

ชุดผลลัพธ์ตัวอย่างของ Application Insights

ฉันจะจำกัดผู้ใช้ให้แคบลงได้อย่างไร

pageViews
| where user_Id == "[userid]"
| summarize count() by tostring(customDimensions.hostType)

ฉันจะใช้ Application Insights กับ Monitor ได้อย่างไร

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

union *
| where operation_Id contains "[ActivityIdHere]"

การตรวจสอบเป็นเครื่องมือแก้ไขข้อบกพร่องแบบเรียลไทม์ อย่างไรก็ตาม ข้อมูลอาจไม่พร้อมใช้งานภายในสองสามชั่วโมง

เหตุใดผู้ใช้จึงประสบปัญหากับฟอร์มเฉพาะ

ผู้ใช้สามารถแบ่งปัน ID เซสชันของพวกเขาจากส่วน เกี่ยวกับ ในส่วนติดต่อแบบรวมสำหรับองค์กรเฉพาะ

การตั้งค่า > เกี่ยวกับ

การตั้งค่า > เกี่ยวกับรหัสของเซสชัน

จากนั้นคุณสามารถใช้ ID นี้เพื่อค้นหาปัญหาโดยดูจากกิจกรรมทั้งหมดในเซสชันนั้น ใช้การสอบถามต่อไปนี้:

union *
| where session_Id == '[sessionIdHere]'

ฟอร์มใดที่ใช้ในตำแหน่งที่ตั้งต่างกัน และประสิทธิภาพการโหลดของฟอร์มในตำแหน่งที่ตั้งเหล่านี้เป็นอย่างไร

pageViews
| summarize avg(duration) by name, client_City, client_CountryOrRegion

API ภายนอกเรียกความล้มเหลวหรือไม่ และฉันสามารถดูรายละเอียดแนวลึกเข้าไปในกองข้อผิดพลาด เพื่อช่วยในการแก้ไขข้อบกพร่องหรือไม่

มุมมอง เบราว์เซอร์ ของแผง ความล้มเหลว มีคำขอขาออกของส่วนติดต่อแบบรวม คำขอไปที่ Dataverse หรือองค์กรที่มี URL องค์กร อาจมีคำขออื่นๆ ที่ส่งไปยัง URL อื่น (สำหรับอินสแตนซ์ ในภาพต่อไปนี้ องค์กรมีการแก้ไข/ปรับปรุงตามคำสั่งงที่เรียกใช้ dc.services.visualstudio.com) คุณสามารถดูธุรกรรมแบบครบวงจร เพื่อตรวจสอบความล้มเหลวเพิ่มเติมสำหรับการโทรออกภายนอกเหล่านี้

เรียกดูแผงความล้มเหลว

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

ใช่ คุณสามารถตั้งค่า การแจ้งเตือน ใน Application Insights เพื่อตรวจสอบความสมบูรณ์ของแอพพลิเคชันของคุณ