المراقبة وتتبع الأخطاء بنتائج التحليلات في Azure Cosmos DB

ينطبق على: NoSQL MongoDB كاساندرا العفريت جدول

يوفر Azure Cosmos DB نتائج تحليلات حول معدل النقل والتخزين والاتساق والتوفر وزمن الانتقال. يوفر مدخل Microsoft Azure عرضًا مجمعًا لهذه المقاييس. يمكنك أيضًا عرض مقاييس Azure Cosmos DB من واجهة برمجة التطبيقات Azure Monitor. قيم الأبعاد للقياسات مثل اسم الحاوية غير حساسة لحالة الأحرف. لذلك، تحتاج إلى استخدام مقارنة غير حساسة لحالة الأحرف عند إجراء مقارنات سلسلة على قيم الأبعاد هذه. لمعرفة كيفية عرض المقاييس من Azure monitor، راجع مراقبة Azure Cosmos DB.

هذه المقالة تتبع مسار حالات الاستخدام الشائعة وكيفية استخدام نتيجة تحليلات Azure Cosmos DB لتحليل وتتبع أخطاء هذه المشكلات. بشكل افتراضي، تُجمع نتيجة التحليلات القياسية كل خمس دقائق ويُحتَفظ بها لمدة سبعة أيام.

عرض نتيجة التحليلات من مدخل Microsoft Azure

  1. سجل الدخول إلى مدخل Microsoft Azure وانتقل إلى حساب Azure Cosmos DB الخاص بك.

  2. يمكنك عرض مقاييس حسابك إما من جزء مقاييس أو جزء التفاصيل.

    • المقاييس: يوفر هذا الجزء مقاييس رقمية يتم جمعها على فترات منتظمة ويصف بعض جوانب النظام في وقت معين. على سبيل المثال، يمكنك عرض ومراقبة مقياس زمن الانتقال من جانب الخادم، ومقياس استخدام وحدة الطلب العادي، وما إلى ذلك.

    • التفاصيل يوفر هذا الجزء تجربة مراقبة مخصصة لـAzure Cosmos DB. تستخدم نتائج التحليلات نفس المقاييس والسجلات التي يتم جمعها في Azure Monitor وتظهر طريقة عرض مجمعة لحسابك.

  3. افتح جزء التفاصيل الدقيقة. بشكل افتراضي، يعرض جزء Insights مقاييس معدل النقل والطلبات والتخزين والتوافر وزمن الانتقال والنظام وعمليات الإدارة لكل حاوية في حسابك. يمكنك تحديد النطاق الزمني،وقاعدة البياناتوالحاوية التي تريد عرض نتيجة التحليلات الخاصة بها. تعرض علامة التبويب نظرة عامة استخدام وحدات الطلب/ثانية، واستخدام البيانات، واستخدام الفهرس والطلبات المُقيَّدة واستهلاك وحدات الطلب/ثانية التي تتم تسويتها لقاعدة البيانات والحاوية المحددة.

    لقطة شاشة لمقاييس أداء Azure Cosmos DB في مدخل Microsoft Azure.

  4. تتوفر المقاييس التالية من جزءنتيجة التحليلات:

    • معدل النقل تعرض علامة التبويب هذه العدد الإجمالي لوحدات الطلب المستهلكة أو الفاشلة (429 رمز استجابة) بسبب تجاوز معدل النقل أو سعة التخزين المتوفرة للحاوية.

    • الطلبات. تعرض علامة التبويب هذه العدد الإجمالي للطلبات التي تمت معالجتها بواسطة رمز الحالة، حسب نوع العملية، وعدد الطلبات الفاشلة (429 رمز استجابة). تفشل الطلبات عندما تتجاوز معدل النقل أو سعة التخزين المخصصة للحاوية.

    • التخزين. تعرض علامة التبويب هذه حجم البيانات واستخدام الفهرس خلال الفترة الزمنية المحددة.

    • التوفّر. تعرض علامة التبويب هذه النسبة المئوية للطلبات الناجحة على إجمالي الطلبات في الساعة. تحدد اتفاقيات مستوى الخدمة ل Azure Cosmos DB معدل النجاح.

    • زمن الانتقال. تعرض علامة التبويب هذه زمن انتقال القراءة والكتابة الذي لاحظه Azure Cosmos DB في المنطقة التي يعمل فيها حسابك. يمكنك تصور زمن الانتقال عبر المناطق لحساب مكرر جغرافيًا. يمكنك أيضا عرض زمن الانتقال من جانب الخادم بواسطة عمليات مختلفة. لا يمثل هذا المقياس زمن انتقال الطلب من البداية إلى النهاية.

    • النظام. توضح علامة التبويب هذه عدد طلبات بيانات التعريف التي يخدمها القسم الأساسي. كما أنه يساعد على تحديد الطلبات المُقيَّدة.

    • عمليات الإدارة. تعرض علامة التبويب هذه مقاييس أنشطة إدارة الحساب مثل إنشاء الحساب وحذفه والتحديثات الرئيسية وإعدادات الشبكة والنسخ المتماثل.

تشرح المقاطع التالية السيناريوهات الشائعة حيث يمكنك استخدام مقاييس Azure Cosmos DB.

فهم عدد الطلبات التي تنجح أو تتسبب في حدوث أخطاء

للبدء، انتقل إلى مدخل Microsoft Azure وانتقل إلى جزء Insights . من هذا الجزء، افتح علامة التبويب الطلبات . تعرض علامة التبويب الطلبات مخططا يحتوي على إجمالي الطلبات مقسمة حسب رمز الحالة ونوع العملية. لمزيدٍ من المعلومات حول التعليمة البرمجية لحالة HTTP، راجع التعليمة البرمجية لحالة HTTP لـ Azure Cosmos DB.

التعليمة البرمجية لحالة الخطأ الأكثر شيوعًا هو 429 (الحد من معدل/تقييد). يعني هذا الخطأ أن الطلبات إلى Azure Cosmos DB أكثر من معدل النقل المقدم. الحل الأكثر شيوعًا لهذه المشكلة هو توسيع نطاق وحدات الطلب عن مجموعة معينة. لمزيد من المعلومات، راجع مقدمة حول معدل النقل المقدم في Azure Cosmos DB

لقطة شاشة تعرض إجمالي الطلبات حسب رمز الحالة والطلبات المقيدة وإجمالي الطلبات حسب نوع العملية.

تحديد استهلاك معدل النقل بواسطة نطاق مفتاح القسم

وجود علاقة أساسية جيدة من مفاتيح القسم الخاص بك أمر ضروري لأي تطبيق قابل للتطوير. لتحديد توزيع معدل النقل لأي حاوية مقسمة موزعة حسب معرفات نطاق مفتاح القسم، انتقل إلى جزء التفاصيل. افتح علامة التبويب معدل النقل. يتم عرض استهلاك RU/s الطبيعي عبر نطاقات مفاتيح القسم المختلفة في المخطط.

لقطة شاشة لعلامة تبويب معدل النقل، تظهر استهلاك RU/s.

بمساعدة هذا المخطط، يمكنك تحديد ما إذا كان هناك قسم ساخن. قد يؤدي توزيع معدل النقل غير المتساوي إلى أقسام ساخنة ، ما قد يؤدي إلى طلبات مقيدة وقد يتطلب إعادة تقسيم. بعد تحديد مفتاح القسم الذي يتسبب في انحراف التوزيع، قد تضطر إلى إعادة تقسيم الحاوية باستخدام مفتاح قسم أكثر توزيعا. لمزيد من المعلومات حول التقسيم في Azure Cosmos DB، راجع التقسيم والتحجيم الأفقي في Azure Cosmos DB.

تحديد استخدام البيانات والفهرس

من المهم تحديد توزيع التخزين لأي حاوية مقسمة حسب استخدام البيانات، واستخدام الفهرس، واستخدام المستند. يمكنك تقليل استخدام الفهرس، وزيادة استخدام البيانات إلى أقصى حد، وتحسين استعلاماتك. للحصول على هذه البيانات، انتقل إلى جزء Insights وافتح علامة التبويب Storage .

لقطة شاشة لجزء Insights، مع تمييز علامة التبويب Storage.

مقارنة حجم البيانات بحجم الفهرس

في Azure Cosmos DB، يكون إجمالي التخزين المستهلك هو مزيج من حجم البيانات وحجم الفهرس. بشكل عام، حجم الفهرس هو جزء صغير من حجم البيانات. لمعرفة المزيد، راجع مقالة حجم الفهرس. في جزء Metrics في مدخل Microsoft Azure، تعرض علامة التبويب Storage تصنيف استهلاك التخزين استنادا إلى البيانات والفهرس.

// Measure the document size usage (which includes the index size)  
ResourceResponse<DocumentCollection> collectionInfo = await client.ReadDocumentCollectionAsync(UriFactory.CreateDocumentCollectionUri("db", "coll"));
 Console.WriteLine("Document size quota: {0}, usage: {1}", collectionInfo.DocumentQuota, collectionInfo.DocumentUsage);

إذا كنت ترغب في الحفاظ على مساحة الفهرس، يمكنك ضبط نهج الفهرسة.

تصحيح الاستعلامات البطيئة

في واجهة برمجة التطبيقات ل NoSQL SDKs، يوفر Azure Cosmos DB إحصائيات تنفيذ الاستعلام.

IDocumentQuery<dynamic> query = client.CreateDocumentQuery(
 UriFactory.CreateDocumentCollectionUri(DatabaseName, CollectionName),
 "SELECT * FROM c WHERE c.city = 'Seattle'",
 new FeedOptions
 {
 PopulateQueryMetrics = true,
 MaxItemCount = -1,
 MaxDegreeOfParallelism = -1,
 EnableCrossPartitionQuery = true
 }).AsDocumentQuery();
FeedResponse<dynamic> result = await query.ExecuteNextAsync();

// Returns metrics by partition key range Id
IReadOnlyDictionary<string, QueryMetrics> metrics = result.QueryMetrics;

يوفر QueryMetrics تفاصيل حول المدة التي استغرقها تنفيذ كل مكون من مكونات الاستعلام. السبب الجذري الأكثر شيوعا للاستعلامات طويلة الأمد هو عمليات الفحص، ما يعني أن الاستعلام لم يتمكن من تطبيق الفهارس. يمكن حل هذه المشكلة مع شرط وجود عامل تصفية أفضل.

مراقبة طلبات وحدة التحكم

يطبق Azure Cosmos DB حدودا على عدد طلبات بيانات التعريف التي يمكن إجراؤها على فترات زمنية متتالية مدتها 5 دقائق. قد تواجه طلبات وحدة التحكم التي تتجاوز هذه الحدود تقييدا. قد تستهلك طلبات بيانات التعريف في بعض الحالات معدل النقل master partition مقابل داخل حساب يحتوي على جميع بيانات تعريف الحساب. ستختبر طلبات وحدة التحكم التي تتجاوز مقدار معدل النقل حدا للمعدل (429s).

للبدء، انتقل إلى مدخل Microsoft Azure وانتقل إلى جزء Insights . من هذا الجزء، افتح علامة التبويب النظام . تعرض علامة التبويب النظام مخططين. واحد يعرض جميع طلبات بيانات التعريف لحساب. يعرض الثاني استهلاك معدل النقل لطلبات بيانات التعريف من الحساب master partition الذي يخزن بيانات تعريف الحساب.

لقطة شاشة لجزء Insights، مع تمييز الرسم البياني لطلبات بيانات التعريف في علامة التبويب System.

لقطة شاشة لجزء Insights، مع تمييز الرسم البياني لطلبات بيانات التعريف 429 في علامة التبويب النظام.

يجمع الرسم البياني طلب بيانات التعريف حسب رمز الحالة أعلاه الطلبات في زيادة نقاوة أكبر أثناء زيادة النطاق الزمني. أكبر نطاق زمني يمكنك استخدامه لخانة زمنية مدتها 5 دقائق هو 4 ساعات. لمراقبة طلبات بيانات التعريف عبر نطاق زمني أكبر مع دقة محددة، استخدم مقاييس Azure. أنشئ مخططا جديدا وحدد مقياس طلبات بيانات التعريف. في الزاوية العلوية اليسرى، حدد 5 دقائق لدقة الوقت كما هو موضح أدناه. تسمح المقاييس أيضا للمستخدمين بإنشاء تنبيهات عليها مما يجعلها أكثر فائدة من Insights.

لقطة شاشة لجزء Metrics، مع تمييز طلبات بيانات التعريف لحساب ونقاوة زمنية تبلغ 5 دقائق.

الخطوات التالية

قد تحتاج إلى معرفة المزيد حول تحسين أداء قاعدة البيانات من خلال قراءة المقالات التالية: