Compartir vía


Solución de problemas con consultas de diagnóstico avanzadas con Azure Cosmos DB for Apache Gremlin

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

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

Solicitudes limitadas (statusCode = 429) en un período de tiempo determinado

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

Consultas con longitudes de respuesta largas (tamaño de la carga de la respuesta del servidor)

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

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