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