استكشاف المشكلات المتعلقة باستعلامات التشخيص المتقدمة وإصلاحها باستخدام Azure Cosmos DB ل MongoDB
ينطبق على: NoSQL
MongoDB
كاساندرا
العفريت
في هذه المقالة، سنغطي كيفية كتابة المزيد من الاستعلامات المتقدمة للمساعدة في استكشاف مشاكل حساب Azure Cosmos DB وإصلاحها باستخدام سجلات التشخيص المرسلة إلىAzure Diagnostics (legacy) والخاصة بالموارد (إصدار أولي ) من الجداول.
بالنسبة لجداول Azure Diagnostics، تتم كتابة جميع البيانات في جدول واحد. يحدد المستخدمون الفئة التي يريدون الاستعلام عنها. إذا كنت تريد عرض استعلام النص الكامل لطلبك، فراجع مراقبة بيانات Azure Cosmos DB باستخدام إعدادات التشخيص في Azure لمعرفة كيفية تمكين هذه الميزة.
بالنسبة إلىالجداول الخاصة بالموارد، تتم كتابة البيانات في جداول فردية لكل فئة من فئات المورد. نوصي بهذا الوضع لأنه:
- يجعل العمل مع البيانات أسهل بكثير.
- يوفر قابلية اكتشاف أفضل للمخططات.
- يحسِّن الأداء عبر كلٍّ من زمن انتقال الاستيعاب وأوقات الاستعلام.
الاستعلامات الشائعة
يتم عرض الاستعلامات الشائعة في جداول Azure Diagnostics الخاصة بالمورد.
أعلى N (10) طلب وحدة (RU) تستهلك الطلبات أو الاستعلامات في إطار زمني محدد
//Enable full-text query to view entire query text
CDBMongoRequests
| where TimeGenerated > ago(24h)
| project PIICommandText, ActivityId, DatabaseName , CollectionName, RequestCharge
| order by RequestCharge desc
| take 10
الطلبات المقيدة (statusCode = 429 أو 16500) في نافذة زمنية محددة
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "429" or ErrorCode == "16500"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
طلبات انقضاء المهلة (statusCode = 50) في نافذة زمنية محددة
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "50"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
استعلامات ذات أطوال رد كبير(حجم حمولة رد الخادم)
CDBMongoRequests
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
| summarize max(ResponseLength) by PIICommandText, RequestCharge, DurationMs, OperationName, TimeGenerated
| order by max_ResponseLength desc
استهلاك RU بواسطة القسم الفعلي (عبر جميع النسخ المتماثلة في مجموعة النسخ المتماثلة)
CDBPartitionKeyRUConsumption
| where TimeGenerated >= now(-1d)
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
// filter by operation type
//| where operationType_s == 'Create'
| summarize sum(todouble(RequestCharge)) by toint(PartitionKeyRangeId)
| render columnchart
استهلاك RU حسب القسم المنطقي(عبر جميع النسخ المتماثلة في مجموعة النسخ المتماثلة)
CDBPartitionKeyRUConsumption
| where TimeGenerated >= now(-1d)
//specify collection and database
//| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
// filter by operation type
//| where operationType_s == 'Create'
| summarize sum(todouble(RequestCharge)) by PartitionKey, PartitionKeyRangeId
| render columnchart
الخطوات التالية
- لمزيد من المعلومات حول كيفية إنشاء إعدادات التشخيص لـ Azure Cosmos DB، راجعإنشاء إعدادات التشخيص.
- للحصول على معلومات مفصلة حول كيفية إنشاء إعداد تشخيص باستخدام مدخل Microsoft Azure أو Azure CLI أو PowerShell، راجعإنشاء إعدادات التشخيص لتجميع سجلات النظام الأساسي والمقاييس في Azure.