תצוגה מקדימה: אירועי מדידת שימוש עבור יישומים מונחי-דגמים
[מאמר זה הוא תיעוד קדם-הפצה והוא עשוי להשתנות.]
אילו נתונים זמינים עבור יישומים מונחי-דגמים?
נתוני ביצועים הקשורים לטעינות עמודים ולבקשות רשת יוצאות של ממשק מאוחד (UCI) זמינים עבור יישומים מונחי-דגמים.
אילו סוגים של טעינות דפים זמינים?
| סוג | נתוני ביצועים ואבחון זמינים |
|---|---|
| טעינת לוח מחוונים (UCI) - דפדפן | כן |
| ערוך לוח מחוונים (UCI) - מוטבע | כן |
| טעינת לוח מחוונים (UCI) - MobileApplication | כן |
| טעינת לוח מחוונים (UCI) - MailApp | כן |
| טעינת לוח מחוונים (UCI) - MobileApplication | כן |
| טעינת EditForm (UCI) – דפדפן | כן |
| טעינת EditForm (UCI) - מוטבע | כן |
| טעינת EditForm (UCI) - MailApp | כן |
| טעינת EditForm (UCI) - MobileApplication | כן |
| טעינת EntityList (UCI) – דפדפן | כן |
| טעינת EntityList (UCI) - מוטבע | כן |
| טעינת EntityList (UCI) – MailApp | כן |
| טעינת EntityList (UCI) - MobileApplication | כן |
| הפעלת יישום - (UCI) - דפדפן | כן |
| הפעלת יישום - (UCI) - מוטבע | כן |
| הפעלת יישום - (UCI) - MailApp | כן |
| הפעלת יישום - (UCI) - MobileApplication | כן |
| טעינת QuickCreateForm (UCI) - דפדפן | כן |
| טעינת QuickCreateForm (UCI) - מוטבע | כן |
| טעינת QuickCreateForm (UCI) - MailApp | כן |
| טעינת QuickCreateForm (UCI) - MobileApplication | כן |
| SaveForm | לא זמין כעת |
| פעולות CommandButton | לא זמין כעת |
היכן זמינים נתוני טעינת הדפים?
נתונים אלה נכנסים לטבלה pageViews ב- Application Insights. ערך נרשם בכל פעם שמשתמש טוען דף בממשק מאוחד. הנתונים הנרשמים יכללו טעינות "נקיות" בלבד. טעינות שלא ניתן למדוד במדויק את משך הזמן שלהן—ניווט מהיר, יציאה מיישום, הודעת התראה—לא ייכללו. מסיבה זו, אנו ממליצים לא להשתמש בנתונים אלה למספרים מדויקים הקשורים לניתוח השימוש.
ישנם מאפיינים נוספים ב- customDimensions שמספקים פרטים נוספים לטעינות דפים של הממשק המאוחד. לדוגמה, שאילתה זו תחזיר את הערכים של כל התכונות בטבלה pageViews.
pageViews
| take 1

תכונות הטבלה pageViews כוללות:
- appModule: שם מודול היישום.
- entityName: תכונה זו קיימת כאשר היא רלוונטית. היא זמינה בסוגי דפים כמו EditForm, EntityList ו- Dashboards כאשר הם מאוגדים לישות. בתרחישים מסוימים, הטופס לא מאוגד לישות והערך נראה כלא מוגדר.
- formId: ה- formId מזהה טופס באופן ייחודי ויכול לשמש לביצוע מתאם של בעיות המשפיעות על טופס ספציפי זה.
- hostType: דפדפן/MobileApplication/מוטבע
- isBoot: האם זוהי הטעינה הראשונה של הפעלה?
- loadType
- 0: ביקור ראשון בסוג דף מסוים (למשל, הביקור הראשון בטופס).
- 1: ביקור ראשון בתצורה מסוימת (למשל, הביקור הראשון בטופס תיק לקוח).
- 2: ביקור ראשון ברשומה מסוימת (למשל, הביקור הראשון ברשומת תיק לקוח A2).
- 3: בעבר נערך ביקור בכתובת URL זו בדיוק.
- navigationOrigin: סוג הדף שממנו המשתמש ניווט.
- networkConnectivityState: האם למכשיר יש חיבור.
- pageName: סוג טעינת העמוד.
- serverConnectivityState: האם היישום מחובר לשרת.
- syncRequestTime: הזמן המוקדש להמתנה בבקשות סינכרוניות.
- coldLatency: האומדן הראשון של השהיית רשת, כולל זמן לחיצת יד של SSL.
- warmLatency: האומדן הבא של השהיית הרשת, שהיא ההשהיה הצפויה האופיינית לכל בקשה.
- warmThrputput: התפוקה המשוערת של הרשת, ב- 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 כוללת את השדות הבאים:
Name: כתובת ה- URL שמופעלת על-ידי ממשק מאוחד.
Target: כרגע זהה ל- Name.
Success: האם הקריאה הצליחה או נכשלה.
UserId: מזהה המשתמש של מערכת Dataverse של המשתמש המחובר.
Duration: משך הקריאה.
customDimensions: מכיל את התכונות הבאות:

- appModule: ה- appModule שמבצע את הקריאה.
- bodySize: גודל התגובה, מקודד ומפוענח.
- cached: האם הבקשה הועברה למטמון המקומי או שהייתה צריכה לעבור לשרת. שים לב, אפשרות זו לא פועלת כצפוי אם משתמש הקצה השתמש בדפדפן Internet Explorer.
- download: הזמן שנדרש להורדת התגובה.
- stall: משך הזמן שבו הבקשה המתינה בתור הדפדפן.
- ttfb: הזמן שהוקדש להמתנה לתגובה הראשונית, נקרא גם "הזמן עד לבית הראשון". זמן זה לוכד את ההשהיה של זמן הלוך ושוב לשרת בנוסף לזמן ההמתנה לשרת כדי לספק את התגובה.
- coldLatency: האומדן הראשון של השהיית רשת, כולל זמן לחיצת יד של SSL.
- warmLatency: האומדן הבא של השהיית הרשת, שהיא ההשהיה הצפויה האופיינית לכל בקשה.
- warmThrputput: התפוקה המשוערת של הרשת, ב- Kbps.
גילוי וניתוח של תרחישים
מדוע חלק מהמשתמשים שלי נתקלים באיטיות בממשק מאוחד?
תרחיש אחד שבו גילוי וניתוח יכולים להיות חשובים מאוד הוא כאשר משתמש מאזור מסוים (למשל, אסיה) מדווח שהביצועים של טופס איטיים. ייתכן שמשתמש זה, שנמצא באסיה, ניגש לסביבה או לארגון בצפון אמריקה. הפרטים יציגו את זמן הטעינה הכולל בנוסף למשך הזמן הקשור לרשת. ייתכן מאוד שהסיבה לכך היא ביצועים איטיים שנתפסים על-ידי המשתמש.
באפשרותך להשתמש בתכונות warmLatency, warmThroughput ו- coldLatency כדי להבין ביתר פירוט למה מוקדש הזמן בעת טעינת דפים ובקשות אחרות של הממשק המאוחד, כמוצג בתמונה.

בבקשה למעלה, בקשת הממשק מאוחד נמשכת זמן רב מאשר בקשת Dataverse API (Web API) בפועל. הפירוט במקרה זה הוא משך הזמן של קריאת API של Dataverse (56 אלפיות השנייה) בנוסף לערך של CustomDimensions.warmLatency (89 אלפיות השנייה), והתוצאה המתקבלת היא כמעט משך הפעולה כולה (144 אלפיות השנייה). הערך 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 בטבלה requests של Application Insights כוללת נתונים אלה. באפשרותך להשתמש בשאילתה הבאה כדי לקבל סקירה כללית של המקורות השונים שמהם המשתמשים ניגשים למערכת:
pageViews
| summarize count() by tostring(customDimensions.userAgent), user_Id
dependencies
| where ['type'] == "UCI REQUEST"
| כאשר הערך customDimensions.userAgent מתחיל ב- | מהיכן המשתמש ניגש למערכת? |
|---|---|
| Mozilla | סוג דפדפן, גירסה |
| azure-logic-apps | יישומים לוגיים של Azure |
| PowerApps | Power Apps |
| Microsoft Office Excel | Office Excel |
| פורטלים | פורטלים |
| DynamicsDataIntegration | Dynamics Data Integration |
| XrmToolBox.exe | XrmToolBox |
| PluginRegistration | Plugin Registration |
| LogicAppsDesigner | Logic Apps Designer |
| Apache-HttpClient | לקוח Apache HTTP |
| Microsoft Flow | Power Automate |
| UnifiedServiceDesk | Unified Service Desk |
| PostmanRuntime | Postman |
| OfficeGroupsConnector | Office Groups Connector |
| Microsoft.Data.Mashup | Power Query |
| Apache-Olingo | Apache Olingo |
| Dalvik | Android |
| Jakarta Commons-Http | Jakarta |
| 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. כדי לעיין ביומנים עבור פעולה נתונה, שים לב למזהה הפעילות משורה בדף פרטי האירוע ב- Monitor. תוכל לאתר את היומנים באמצעות השאילתה הבאה:
union *
| where operation_Id contains "[ActivityIdHere]"
שים לב, Monitor הוא כלי איתור באגים בזמן אמת; עם זאת, יתכן שנתונים לא יהיו זמינים בו במשך כמה שעות.
מדוע משתמשים נתקלים בבעיות עם טופס ספציפי?
המשתמש יכול לשתף את מזהה ההפעלה שלו מהמקטע אודות בממשק מאוחד עבור הארגון הספציפי.


לאחר מכן תוכל להשתמש במזהה זה כדי לאתר בעיות על ידי בחינת כל הפעילויות באותה הפעלה. השתמש בשאילתה הבאה:
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 כדי לנטר את תקינות היישום.