הערה
גישה לעמוד זה דורשת אישור. אתה יכול לנסות להיכנס או לשנות תיקיות.
גישה לעמוד זה דורשת אישור. אתה יכול לנסות לשנות מדריכים.
זרם הנתונים מספק כעת נתוני ביצועים הקשורים לקריאות API נכנסות של Dataverse, לקריאות ביצוע של יישומי Plug-in של Dataverse ולקריאות SDK של Dataverse. הוא מספק גם נתונים לכשלים ביישום Plug-in ובפעולות SDK של Dataverse.
קריאות API נכנסות של Dataverse
אלה הן קריאות שבוצעו ל- API של Dataverse. הן יכולות להיות מממשק מאוחד (UCI), מלקוח אינטרנט מדור קודם או מלקוחות מותאמים אישית שמשתמשים ב- SDK וכן הלאה. ניתן למצוא אותן בטבלה requests של Application Insights, שמכילה את השדות הבאים.
שם: סוג הבקשה. סוגי הבקשות מתחלקים לשתי קטגוריות:
- בקשת Web API: בקשה לנקודת קצה של OData v4 שבדרך כלל נמצאת בשימוש על-ידי ממשק מאוחד ולקוחות מודרניים. בקשה זו הופכת לפעולה המשותפת לשניהם. Web API הוא "עטיפה" המאפשרת את מודל התיכנות RESTful, אך לאחר שהנתונים מתקבלים, הכל הופך להיות אותו דבר בתוך השרת. כאשר התגובה מוחזרת, היא עוברת המרה ל- JSON אם הבקשה הגיעה מה- Web API.
- בקשת שירות של ארגון: בקשה לנקודת קצה של ה- API הארגוני הנמצאת בשימוש על-ידי לקוחות SDK או לקוח האינטרנט מדור קודם.
משך: משך הזמן שלוקח לשרת להגיב לבקשה.
כתובת URL: כתובת ה- URL שאליה בוצעה הקריאה.
CustomDimensions:
UserAgent: Application Insights מאכלס באופן אוטומטי את שדה סוכן המשתמש עם הערך PC מכיוון שיומנים אלה נדחפים משרת במרכז נתונים. Application Insights לא מאפשר לעקוף את שדה סוכן המשתמש. לפעמים, שדה סוכן המשתמש אינו זמין לאכלוס. ניתן להציג את סוכן המשתמש שממנו בוצעה הקריאה באמצעות השאילתה הבאה:
requests | summarize count() by tostring(customDimensions.userAgent)
Operation_Name: שם הפעולה הניתן לקריאה שיוצג בתצוגות, כגון תצוגת עסקאות מקצה לקצה.
יומני ביצוע של יישום plug-in של Dataverse
יומנים אלה עבור יישומי plug-in מותאמים אישית, שפועלים עבור פעולה נתונה, נמצאים בטבלה dependency. להלן שאילתה לדוגמה:
dependencies
| where type == "Plugin"
| take 100
- שם/יעד: שם הסוג המלא של יישום ה- plug-in המתבצע.
- משך: משך הזמן שנדרש לביצוע יישום ה- plug-in.
-
CustomDimensions:
- עומק: העומק הנוכחי של הביצוע במחסנית הקריאות.
- EntityName: שם הישות שבה פועל יישום ה- plug-in.
-
IsolationType: ערך שמציין אם יישום ה- plug-in מבוצע בארגז החול (Sandbox):
- 1: ללא
- 2: ארגז חול (Sandbox)
- 3: חיצוני
- PluginName: שם ידידותי למשתמש עבור יישום ה- plug-in.
- PluginType: השם של סוג יישום ה- plug-in שמתבצע.
- PluginVersion: גירסת יישום ה- plug-in שפורסם. הכוונה כאן היא לאפשר שימוש במידע זה לפתרון בעיות של עדכוני גירסאות.
-
שלב: מפות לערכים הבאים:
- PreValidation = 10
- PreOperation = 20
- PreOperationBeforeExternalPlugins = 15
- PreOperationAfterExternalPlugins = 25
- MainOperation = 30
- PostOperationBeforeExternalPlugins = 35
- PostOperationAfterExternalPlugins = 45
- PostOperation = 40
- PostOperationDeprecated = 50
- StepName: שם שלב העיבוד של הודעת ה- SDK. שם זה נוצר בדרך כלל על-ידי הכלי לרישומי Plug-in באמצעות מידע על ה- PluginName, PluginType ושם הפעולה, לדוגמה ErrorMessageTest.ThrowException: יצירת תיק לקוח.
מדידת שימוש בתוך קוד יישום ה- plug-in
כדי להבין מה קורה בתוך הקוד של יישום ה- plug-in, אפשר לכלול מדידת שימוש מותאמת אישית מתוך יישום ה- plug-in באמצעות Microsoft.Xrm.Sdk.PluginTelemetry.ILogger Interface ביישום ה- plug-in כדי לכתוב נתוני מדידת שימוש ישירות במשאב Application Insights. מידע נוסף: כתיבת מדידת שימוש במשאב Application Insights באמצעות ILogger (Preview)
יומני SDK של Dataverse
יומנים אלה לפעולות SDK מופעלים כחלק מבקשה נכנסת. פעולות אלה נרשמות בטבלה dependency ב- Application Insights, מכיוון שהם נמצאים במעקב כיחסי תלות עבור הבקשה לביצוע. הן מזוהות לפי שם הסוג, החל מ- SDK. להלן שאילתה לדוגמה:
dependencies
| where type startswith "SDK"
| take 10
- סוּג: סוג בקשת ה- SDK שהופעלה. לדוגמה, Retrieve, RetrieveMultiple, FetchXmlToQueryExpression ו- WhoAmI.
- שם/יעד: זהו שם הישות שבה מתמקדת פעולת ה- SDK.
-
CustomDimensions:
- ClientType: סוג הלקוח שממנו מגיעה הקריאה. כמה ערכים אפשריים הם Web, UCIClient ו- OutlookFull.
- EntityId: המזהה הייחודי של הישות שבה נעשה שימוש.
- EntityName: שם הישות שבה נעשה שימוש.
חריגות
תראה פרטים על כשלים ביישום ה- plug-in ופעולות SDK ב- Application Insights. הטבלה exceptions ב- Application Insights משפרת את הלוח כשלים. פרטי כשלים אלה תואמים לשאר האירועים ביישום ה- plug-in ולקריאוות SDK בתצוגת מקצה לקצה. כל המידע הזמין נוסף לעמודות כאשר הדבר אפשרי ול- customDimensions כשאין התאמה מדויקת של העמודות.
תוכל להבחין שחלק מהשדות בטבלה exceptions לא מאוכלסים. הסיבה לכך היא שניתן להגדיר שדות אלה רק אם ה- SDK של Application Insights משמש להשמטת יומנים מהמקור. תכונה זו אוספת את נתוני מדידת השימוש של הפלטפורמה ולאחר מכן דוחפת אותם לתוך Application Insights בהתאם לסכימה של Application Insights.
exceptions
| take 10
שאילתה זו תחזיר את כל פרטי התכונה מהטבלה exception.
- problemId/type: סוג החריגה.
- outerMessage: הודעת החריגה.
-
customDimensions:
- clientType: סוג הלקוח שממנו מגיעה הקריאה. כמה ערכים אפשריים הם Web, UCIClient ו- OutlookFull.
- exceptionSource: יישום ה- plug-in או הנקודה שבה הוצגה החריגה.
- entityName: שם הישות שבה נעשה שימוש.
- pluginName: שם יישום ה- plug-in שבו הוצגה החריגה.
אם משתמש מדווח על שגיאה, ניתן להשתמש במזהה המשתמש (מזהה של 'מזהה Microsoft Entra') כדי להבין פרטים מהטבלה exception.
exceptions
| where user_Id == '00aa00aa-bb11-cc22-dd33-44ee44ee44ee'
מזהה הישות ושם הישות זמינים ב- customDimensions בטבלה dependency.
dependencies
| where type == "SDK Retrieve"
שאלות נפוצות (FAQ)
להלן כמה שאלות נפוצות הקשורות לאירועי מדידת שימוש עבור Dataverse.
כיצד אוכל לקבוע אם שדרוג יישום ה- plug-in שלי גרם לירידה בביצועים?
dependencies
| where ['type'] == "Plugin"
| where name startswith "[InsertYourPluginName]"
| summarize avg(duration) by name
שם יישום ה- plug-in צריך להכיל גם את הגירסה עבור יישומי plug-in מותאמים אישית.
איך היו ביצועי ה- API לפני הבעיה שדווחה, בהתבסס על השעה ביום או על המיקום? האם הירידה בביצועים של API הייתה הדרגתית או פתאומית?
requests
| where url == "https://<URLHere>"
| summarize avg(duration), count() by bin(timestamp, 1h)
| render timechart
בתרשים זה אנו יכולים לראות את ביצועי נקודת הקצה של ה- API בפרק זמן נתון כנגד מספר הבקשות שהוגשו.
ניתן גם להגדיר התראה בהתבסס על הביצועים של API מסוים ב- Application Insights.
האם אוכל לחקור לעומק שגיאות או כשלים בזמנים ספציפיים או עבור שמשתמשים ספציפיים כדי להבין את מחסנית הקריאות?
הלוח כשלים מציג מבט כולל על הכשלים בפרק זמן נתון. לאחר מכן תוכל לצמצם לכשל ספציפי בהתבסס על קריאת ה- API או סוג התלות כדי לראות את התצוגה מקצה לקצה.
האם אוכל ליצור לוחות מחוונים מותאמים אישית?
כן. אפשר לבנות לוחות מחוונים מותאמים אישית עם Application Insights.
האם אוכל לקבוע את ביצועי השימוש ביישום plug-in (זמן תגובה) ואת שיעורי הכשלים במהלך שימוש שיא?
כן. עיין בשאילתה לדוגמה הבאה כדי להבין את ביצועי יישום ה- plug-in.
dependencies
| where ['type'] == "Plugin"
| where name == "[Plugin name here]"
| summarize avg(duration) by bin(timestamp, 1h)
| render timechart
האם מדידת שימוש זו כוללת ויסות?
כן. פרטים בסיסיים של שגיאה 429 מסופקים כעת.
האם אוכל להבין נתיבי ביצוע? האם הקריאות המתבצעות על-ידי יישום ה- plug-in גורמות להאטה שלו?
כן. באפשרותך להציג את כל ההודעות ויישומי ה- plug-in שמבוצעים עבור כל בקשה.
משך הזמן של ביצוע כל ההודעות ויישומי ה- plug-in נרשם. אם ליישום plug-in נדרש יותר זמן, תוכל לזהות אותו. אם יישום ה- plug-in מבצע התקשרות חזרה אל Dataverse, משך הזמן של קריאה זו נרשם. מידע נוסף על יישומי plug-in מתוכנן לפריסה עתידית.
כל קריאה יוצאת שמתבצעת על-ידי יישום ה- plug-in תירשם באופן אוטומטי כתלות.
האם אוכל להציג מדידת שימוש עבור בקשה ספציפית?
Dataverse מחזיר x-ms-service-requestId בתגובת הכותרת לכל הבקשות. באמצעות requestId זה, תוכל לבצע שאילתה על כל נתוני מדידת השימוש.
union *
| where operation_ParentId contains <requestId>