Solución de problemas con consultas de diagnóstico avanzadas con Azure Cosmos DB for MongoDB
SE APLICA A: NoSQL MongoDB Cassandra Gremlin
En este artículo, se explicará cómo escribir consultas más avanzadas para ayudar a solucionar problemas relacionados con la cuenta de Azure Cosmos DB mediante registros de diagnóstico enviados a las tablas de Azure Diagnostics (heredado) y específicas del recurso (versión preliminar) .
Para las tablas de Azure Diagnostics, todos los datos se escriben en una única tabla. Los usuarios especifican qué categoría quieren consultar. Si quiere ver la consulta de texto completo de la solicitud, vea Supervisión de datos de Azure Cosmos DB mediante la configuración de diagnóstico en Azure para obtener información sobre cómo habilitar esta característica.
En el caso de las tablas específicas del recurso, los datos se escriben en tablas individuales para cada categoría del recurso. Se recomienda este modo porque:
- Facilita considerablemente el trabajo con los datos.
- Proporciona una mejor detectabilidad de los esquemas.
- Mejora el rendimiento tanto de la latencia de ingesta como de los tiempos de consulta.
Consultas comunes
Las consultas comunes se muestran en las tablas específicas del recurso y de Azure Diagnostics.
Principales N(10) unidades de solicitud (RU) que consumen solicitudes o consultas en un período de tiempo específico
//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
Solicitudes limitadas (statusCode = 429 o 16500) en un período de tiempo determinado
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "429" or ErrorCode == "16500"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
Solicitudes con tiempo de espera agotado (statusCode = 50) en un período de tiempo determinado
CDBMongoRequests
| where TimeGenerated > ago(24h)
| where ErrorCode == "50"
| project DatabaseName, CollectionName, PIICommandText, OperationName, TimeGenerated
Consultas con longitudes de respuesta largas (tamaño de la carga de la respuesta del servidor)
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
Consumo de RU por partición física (en todas las réplicas del conjunto de réplicas)
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
Consumo de RU por partición lógica (en todas las réplicas del conjunto de réplicas)
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
Pasos siguientes
- Para obtener más información sobre cómo crear una configuración de diagnóstico para Azure Cosmos DB, vea Creación de una configuración de diagnóstico.
- Para obtener más información sobre cómo crear una configuración de diagnóstico mediante Azure Portal, la CLI de Azure o PowerShell, vea Creación de una configuración de diagnóstico para recopilar los registros y las métricas de la plataforma en Azure.