إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
تتوفر بيانات الأداء المتعلقة بتحميل الصفحات وطلبات الشبكة الصادرة للواجهة الموحدة (UCI) للتطبيقات المستندة إلى النموذج.
ما هو نوع تحميل الصفحة المتاحة؟
| النوع | تتوفر بيانات الأداء والتشخيص |
|---|---|
| تحميل لوحة المعلومات (UCI) – المستعرض | نعم |
| تحميل لوحة المعلومات (UCI) - مضمنة | نعم |
| تحميل لوحة المعلومات (UCI) - تطبيق الأجهزة المحمولة | نعم |
| تحميل لوحة المعلومات (UCI) – تطبيق البريد | نعم |
| تحميل لوحة المعلومات (UCI) - تطبيق الأجهزة المحمولة | نعم |
| تحميل نموذج التحرير (UCI) – المستعرض | نعم |
| تحميل نموذج التحرير (UCI) – مضمن | نعم |
| تحميل نموذج التحرير (UCI) - تطبيق البريد | نعم |
| تحميل نموذج التحرير (UCI) - تطبيق الأجهزة المحمولة | نعم |
| تحميل قائمة الكيانات (UCI) - المستعرض | نعم |
| تحميل قائمة الكيانات (UCI) - مضمنة | نعم |
| تحميل قائمة الكيانات (UCI) - تطبيق البريد | نعم |
| تحميل قائمة الكيانات (UCI) - تطبيق الأجهزة المحمولة | نعم |
| تشغيل التطبيق - (UCI) - المستعرض | نعم |
| تشغيل التطبيق - (UCI) - مضمن | نعم |
| تشغيل التطبيق - (UCI) - تطبيق البريد | نعم |
| تشغيل التطبيق - (UCI) - تطبيق الأجهزة المحمولة | نعم |
| تحميل نموذج الإنشاء السريع (UCI) – المستعرض | نعم |
| تحميل نموذج الإنشاء السريع (UCI) – مضمن | نعم |
| تحميل نموذج الإنشاء السريع (UCI) – تطبيق البريد | نعم |
| تحميل نموذج الإنشاء السريع (UCI) - تطبيق الأجهزة المحمولة | نعم |
| SaveForm | غير متوفر حاليًا |
| إجراءات CommandButton | غير متوفر حاليًا |
أين تتوفر بيانات تحميل الصفحة؟
تدخل هذه البيانات في جدول طرق عرض الصفحات في Application Insights. يتم تسجيل الإدخال في كل مرة يقوم فيها المستخدم بتحميل صفحة في واجهة موحدة. تتضمن البيانات التي تم تسجيلها الأحمال "النظيفة" فقط. الأحمال التي لا يمكن قياس مدتها بدقة — التنقل السريع، والتبديل بعيدًا عن التطبيق، ورسالة تنبيه — غير مضمنة. ولهذا السبب، نوصي بعدم استخدام هذه البيانات للحصول على أرقام دقيقة متعلقة بتحليلات الاستخدام.
هناك خصائص أخرى في customDimensions توفر مزيدًا من التفاصيل لعمليات تحميل صفحات الواجهة الموحدة. على سبيل المثال، يرجع هذا الاستعلام القيم لجميع السمات في جدول pageViews.
pageViews
| take 1
تتضمن سمات جدول طرق عرض الصفحات ما يلي:
- appModule: اسم وحدة التطبيق.
- entityName: هذه السمة موجودة عند الاقتضاء. إنه متاحة في أنواع الصفحات مثل EditForm وEntityList وDashboards عندما تكون مرتبطة بكيان. في بعض السيناريوهات، يكون النموذج غير مرتبط لكيان بينما تظهر القيمة غير محددة.
- formId: يحدد formId بشكل فريد ويمكن استخدامه لربط المشكلات التي تؤثر على هذا النموذج المحدد.
- hostType: مستعرض/تطبيق الأجهزة المحمولة/مضمن
- isBoot: هل هذا هو أول تحميل للدورة؟
-
loadType
- 0: زيارة أولى لنوع صفحة معينة (على سبيل المثال، أول زيارة ل نموذج).
- 1: الزيارة الأولى لتهيئة معينة (على سبيل المثال، الزيارة الأولى إلى نموذج حساب).
- 2: الزيارة الأولى لسجل معين (على سبيل المثال، الزيارة الأولى لسجل الحساب A2).
- 3: تمت زيارة عنوان URL هذا مسبقًا.
- navigationOrigin: نوع الصفحة التي انتقل منها المستخدم.
- networkConnectivityState: ما إذا كان الجهاز به اتصال أم لا.
- pageName: نوع تحميل الصفحة.
- serverConnectivityState: ما إذا كان التطبيق متصلاً بالخادم أم لا.
- syncRequestTime: الوقت المستغرق في انتظار الطلبات المتزامنة.
- coldLatency: التقدير الأول لزمن انتقال الشبكة، والذي يتضمن وقت مصافحة SSL.
- warmLatency: التقدير اللاحق لوقت استجابة الشبكة، وهو وقت الاستجابة المتوقع النموذجي لكل طلب.
- warmThroughput: الإنتاجية المقدرة للشبكة بالكيلو بايت في الثانية.
بالنسبة إلى أحداث Microsoft Dataverse، إن حقل المعرف أو 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: حجم الاستجابة مشفرة ومفككة.
- مخزن مؤقتًا: ما إذا كان الطلب قد ذهب إلى ذاكرة التخزين المؤقت المحلية أو كان عليه الانتقال إلى الخادم. لا يعمل هذا الإجراء بالشكل المتوقع إذا كان المستخدم يستخدم مستعرض Internet Explorer.
- تنزيل: الوقت المستغرق لتنزيل الاستجابة.
- التوقف: وقت انتظار الطلب في قائمة انتظار المتصفح.
- ttfb: الوقت المستغرق في انتظار الاستجابة الأولية، والمعروف أيضًا باسم "وقت البايت الأول". يلتقط هذا الوقت زمن انتقال ذهابًا وإيابًا إلى الخادم بالإضافة إلى الوقت المستغرق في انتظار الخادم لتسليم الاستجابة.
- coldLatency: التقدير الأول لزمن انتقال الشبكة، والذي يتضمن وقت مصافحة SSL.
- warmLatency: التقدير اللاحق لوقت استجابة الشبكة، وهو وقت الاستجابة المتوقع النموذجي لكل طلب.
- warmThroughput: الإنتاجية المقدرة للشبكة بالكيلو بايت في الثانية.
اكتشاف السيناريوهات وتحليلها
لماذا تواجه بعض المستخدمين بطءا في واجهة موحدة؟
من بين السيناريوهات التي يمكن أن يكون الاكتشاف والتحليل فيها قيّمًا هو عندما يقوم مستخدم من منطقة ما (مثل آسيا) بالإعلام عن الأداء البطيء لأحد النماذج. قد يكون هذا المستخدم ومقره في "أسيا" يقوم بالوصول إلى بيئة أو مؤسسة في أمريكا الشمالية. تعرض التفاصيل إجمالي وقت التحميل بالإضافة إلى المدة الزمنية المتعلقة بالشبكة. وقد يكون هذا سببا في بطء الأداء الذي تم تسجيله لدى المستخدم.
يمكنك استخدام سمات warmLatency، وwarmThroughput، وcoldLatency لفهم تفاصيل المكان الذي يقضي فيه الوقت في تحميل الصفحات وطلبات الواجهة الموحدة الأخرى، كما هو موضح في الصورة التالية.
في الطلب أعلاه، يستغرق طلب الواجهة الموحدة وقتًا أطول من طلب Dataverse API (Web API) الفعلي. التقسيم في هذه الحالة هو مدة استدعاء Dataverse API (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 في جدول 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 |
| XrmToolBox.exe | XrmToolBox |
| PluginRegistration | تسجيل المكون الإضافي |
| LogicAppsDesigner | مصمم التطبيقات المنطقية |
| Apache-HttpClient | عميل Apache HTTP |
| Microsoft Flow | Power Automate |
| UnifiedServiceDesk | مكتب الخدمة الموحد |
| PostmanRuntime | ساعي البريد |
| OfficeGroupsConnector | موصل مجموعات Office |
| Microsoft.Data.Mashup | Power Query |
| Apache-Olingo | Apache Olingo |
| Dalvik | Android |
| جاكرتا كومونز-اتش تي تي بي | 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 مع المراقب؟
يساعد Azure Monitor في استكشاف الأخطاء وإصلاحها في الوقت الحقيقي في جلسة عمل من جانب الواجهة الموحدة. من المحتمل أن تكون طلبات الحركة الشاملة متوفرة في Application Insights. لإلقاء نظرة على سجلات إجراء معين، لاحظ معرّف النشاط من صف في صفحة تفاصيل الحدث في المراقب. يمكنك العثور على السجلات باستخدام الاستعلام التالي:
union *
| where operation_Id contains "[ActivityIdHere]"
المراقبة هي أداة تصحيح في الوقت الحقيقي؛ ومع ذلك، قد لا تتوفر البيانات فيها لبضع ساعات.
لماذا يواجه المستخدمون مشكلات في نموذج معين؟
يمكن للمستخدم مشاركة معرف الجلسة الخاص به من قسم حول في الواجهة الموحدة للمؤسسة المحددة.
يمكنك بعد ذلك استخدام هذا المعرف للعثور على المشكلات من خلال النظر في جميع الأنشطة في تلك الجلسة. استخدم الاستعلام التالي:
union *
| where session_Id == '[sessionIdHere]'
ما هي الأشكال التي يتم استخدامها في مواقع مختلفة، وما هو أداء تحميل النماذج في هذه المواقع؟
pageViews
| summarize avg(duration) by name, client_City, client_CountryOrRegion
هل تقوم واجهة برمجة تطبيقات خارجية باستدعاء الفشل، وهل يمكنني التعمق في مكدس الأخطاء للمساعدة في تصحيح الأخطاء؟
تحتوي طريقة عرض المستعرض للوحة حالات الفشل على طلبات الواجهة الموحدة الصادرة. تحتوي الطلبات التي تنتقل إلى Dataverse أو المؤسسة على عنوان URL للمؤسسة. قد تكون هناك طلبات أخرى تنتقل إلى عناوين URL أخرى (على سبيل المثال، في الصورة التالية، لدى المؤسسة تخصيص ينادي dc.services.visualstudio.com). يمكنك إلقاء نظرة على المعاملة من طرف إلى طرف لإجراء مزيد من الفحص لفشل هذه المكالمات الخارجية الصادرة.
هل يمكنني تعيين تنبيه على حد الأداء لإجراءات نموذجية معينة؟ عند تلقي التنبيه، هل سيسمح للمُصنِّع بتشخيص المشكلة واستكشاف الأخطاء وإصلاحها؟
نعم. يمكنك إعداد تنبيهات في Application Insights لمراقبة سلامة تطبيقك.