مشاركة عبر


ما هي البيانات المتاحة للتطبيقات المستندة إلى النموذج؟

تتوفر بيانات الأداء المتعلقة بتحميل الصفحات وطلبات الشبكة الصادرة للواجهة الموحدة (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

جدول pageViews في Application Insights.

تتضمن سمات جدول طرق عرض الصفحات ما يلي:

  • 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: يحتوي على السمات التالية:

    طلب Application Insights UCI.

    • appModule:‏ appModule الذي يقوم بإجراء المكالمة.
    • bodySize: حجم الاستجابة مشفرة ومفككة.
    • مخزن مؤقتًا: ما إذا كان الطلب قد ذهب إلى ذاكرة التخزين المؤقت المحلية أو كان عليه الانتقال إلى الخادم. لا يعمل هذا الإجراء بالشكل المتوقع إذا كان المستخدم يستخدم مستعرض Internet Explorer.
    • تنزيل: الوقت المستغرق لتنزيل الاستجابة.
    • التوقف: وقت انتظار الطلب في قائمة انتظار المتصفح.
    • ttfb: الوقت المستغرق في انتظار الاستجابة الأولية، والمعروف أيضًا باسم "وقت البايت الأول". يلتقط هذا الوقت زمن انتقال ذهابًا وإيابًا إلى الخادم بالإضافة إلى الوقت المستغرق في انتظار الخادم لتسليم الاستجابة.‬
    • coldLatency: التقدير الأول لزمن انتقال الشبكة، والذي يتضمن وقت مصافحة SSL.
    • warmLatency: التقدير اللاحق لوقت استجابة الشبكة، وهو وقت الاستجابة المتوقع النموذجي لكل طلب.
    • warmThroughput: الإنتاجية المقدرة للشبكة بالكيلو بايت في الثانية.

اكتشاف السيناريوهات وتحليلها

لماذا تواجه بعض المستخدمين بطءا في واجهة موحدة؟

من بين السيناريوهات التي يمكن أن يكون الاكتشاف والتحليل فيها قيّمًا هو عندما يقوم مستخدم من منطقة ما (مثل آسيا) بالإعلام عن الأداء البطيء لأحد النماذج. قد يكون هذا المستخدم ومقره في "أسيا" يقوم بالوصول إلى بيئة أو مؤسسة في أمريكا الشمالية. تعرض التفاصيل إجمالي وقت التحميل بالإضافة إلى المدة الزمنية المتعلقة بالشبكة. وقد يكون هذا سببا في بطء الأداء الذي تم تسجيله لدى المستخدم.

يمكنك استخدام سمات warmLatency، وwarmThroughput، وcoldLatency لفهم تفاصيل المكان الذي يقضي فيه الوقت في تحميل الصفحات وطلبات الواجهة الموحدة الأخرى، كما هو موضح في الصورة التالية.

بطء UCI لـ Application Insights.

في الطلب أعلاه، يستغرق طلب الواجهة الموحدة وقتًا أطول من طلب 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)

تُظهر الصورة التالية مثالاً لمجموعة من النتائج من هذا الاستعلام.

عينة مجموعة نتائج Application Insights.

كيف يمكنني الاقتصار على مستخدم معين؟

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 لمراقبة سلامة تطبيقك.