Устранение неполадок с расширенными запросами диагностики с помощью Azure Cosmos DB для Apache Gremlin

ПРИМЕНИМО К: Nosql Mongodb Кассандра Гремлин

В этой статье мы расскажем, как писать более сложные запросы для устранения проблем с вашей учетной записью Azure Cosmos DB с помощью журналов диагностики, отправляемых в таблицы Диагностики Azure (устаревшая версия) и таблицы для конкретных ресурсов (предварительная версия) .

Для таблиц Диагностики Azure все данные записываются в одну таблицу. Пользователи указывают, какая категория будет запрашиваться. Если вы хотите просмотреть полнотекстовый запрос своего запроса, см. раздел Мониторинг данных Azure Cosmos DB с помощью параметров диагностики в Azure, чтобы узнать, как включить эту функцию.

Для таблиц конкретных ресурсов данные записываются в отдельные таблицы для каждой категории ресурса. Мы рекомендуем этот режим, потому что он:

  • Значительно упрощает работу с данными.
  • Обеспечивает более эффективное обнаружение схем.
  • Повышает производительность как по задержке приема, так и по времени запросов.

Стандартные запросы

Распространенные запросы показаны в таблицах для конкретных ресурсов и Диагностики Azure.

Первые N (10) единиц запросов (RU), потребляющих запросы или запросы в определенный период времени

CDBGremlinRequests
| project PIICommandText, ActivityId, DatabaseName , CollectionName
| join kind=inner topRequestsByRUcharge on ActivityId
| project DatabaseName , CollectionName , PIICommandText , RequestCharge, TimeGenerated
| order by RequestCharge desc
| take 10

Запросы ограничены (statusCode = 429) в определенном временном окне

CDBGremlinRequests
| project PIICommandText, ActivityId, DatabaseName , CollectionName
| join kind=inner throttledRequests on ActivityId
| project DatabaseName , CollectionName , PIICommandText , OperationName, TimeGenerated

Запросы с большой длиной ответа (размер полезных данных ответа сервера)

CDBGremlinRequests
//specify collection and database
 //| where DatabaseName == "DB NAME" and CollectionName == "COLLECTIONNAME"
| join kind=inner operationsbyUserAgent on ActivityId
| summarize max(ResponseLength) by PIICommandText
| order by max_ResponseLength desc

Потребление единиц запроса физическим разделом (по всем репликам в наборе реплик)

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

Потребление единиц запроса логическим разделом (по всем репликам в наборе реплик)

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  

Дальнейшие действия