Registros de consultas

Completado

Los recursos de Azure generan registros de diagnóstico de Azure, que proporcionan datos operativos detallados de esos recursos. La configuración de diagnóstico se usa para recopilar esos registros de recursos.

Aunque algunos registros, como las métricas de actividad y plataforma, se recopilan automáticamente, se debe crear la configuración de diagnóstico para recopilar registros de recursos. Estos registros se pueden reenviar fuera de Azure Monitor. La habilitación de la configuración de diagnóstico en las cuentas de Azure Cosmos DB se puede reenviar a las áreas de trabajo de Log Analytics, los centros de eventos y las cuentas de almacenamiento.

Al reenviar datos a áreas de trabajo de Log Analytics, escribe los registros en tablas que se pueden consultar mediante el Lenguaje de consulta Kusto (KQL). Por lo tanto, para usar los datos de diagnóstico almacenados en estas tablas, es esencial tener conocimientos sobre la lectura y escritura de consultas Kusto. Estas tablas pueden ser una tabla heredada genérica denominada Azure Diagnostics o las tablas específicas de recursos recomendadas.

Creación de la configuración de diagnóstico de Azure Cosmos DB

Hay varias maneras de crear la configuración de diagnóstico: Azure Portal, mediante la API REST, PowerShell o la CLI de Azure.

Para crear la configuración de diagnóstico mediante Azure Portal, vaya a la cuenta de Azure Cosmos DB y, en la sección Monitoring, elija Configuración de diagnóstico. Edite una configuración de diagnóstico existente o elija + Agregar configuración de diagnóstico y elija los registros que desea recopilar y los destinos a los que reenviar estos registros.

Diagram that shows the diagnostic settings options for Azure Cosmos DB.

Las tablas de registro de API NoSQL son:

  • DataPlaneRequests: esta tabla registra las solicitudes de back-end para las operaciones que ejecutan la creación, actualización, eliminación o recuperación de datos.
  • QueryRuntimeStatistics: esta tabla registra las operaciones de consulta en la cuenta de API NoSQL.
  • PartitionKeyStatistics: esta tabla registra estadísticas de clave de partición lógica en KB estimados. Resulta útil al solucionar problemas de almacenamiento sesgado.
  • PartitionKeyRUConsumption: esta tabla registra cada segundo consumo agregado de RU/s de claves de partición. Resulta útil al solucionar problemas de particiones activas.
  • ControlPlaneRequests: en esta tabla se registran datos de control de la cuenta de Azure Cosmos DB, por ejemplo, agregar o quitar regiones en la configuración de replicación.

Solución de problemas con las consultas de diagnóstico

Cuando los datos de diagnóstico de Azure Cosmos DB se envían a Log Analytics, se envían a la tabla AzureDiagnostics o a tablas específicas del recurso. El modo preferido es enviar los datos a tablas específicas del recurso, por lo que cada registro elegido en las opciones de configuración de diagnóstico tendrá su propia tabla. Al elegir este modo, resulta más fácil trabajar con los datos de diagnóstico, detectar los esquemas usados y mejorar el rendimiento en los tiempos de latencia y consulta.

Consultas de AzureDiagnostics

Si se elige el modo heredado, los datos de diagnóstico se almacenarán en la tabla AzureDiagnostics, por lo que todas las consultas kusto se ejecutarán en esa tabla. Dado que varios recursos de Azure también podrían rellenar esta tabla, incluya el filtro ResourceProvider=="MICROSOFT.DOCUMENTDB" en la cláusula where para devolver solo las entradas de Azure Cosmos DB. Además, para diferenciar entre los distintos registros seleccionados en la configuración de diagnóstico, agregue un filtro en la columna Category. Por ejemplo, para devolver documentos para el registro QueryRuntimeStatistics, incluya la cláusula where | where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="QueryRuntimeStatistics". Kusto distingue mayúsculas de minúsculas, así que asegúrese de que los nombres de columna estén escritos correctamente. Vamos a revisar un par de ejemplos de consulta Kusto mediante la tabla AzureDiagnostics.

  • Consulta que devuelve el recuento y la solicitud total cobrada de los distintos tipos de operación de Azure Cosmos DB en la última hora.
AzureDiagnostics 
| where TimeGenerated >= ago(1h)
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests" 
| summarize OperationCount = count(), TotalRequestCharged=sum(todouble(requestCharge_s)) by OperationName
| order by TotalRequestCharged desc 
  • Cree una consulta que devuelva un grafo de gráfico de tiempo de todas las solicitudes correctas (estado 200) y con limitación de frecuencia (estado 429) en la última hora. Las solicitudes se agregarán cada 10 minutos.
AzureDiagnostics 
| where TimeGenerated >= ago(1h)
| where ResourceProvider=="MICROSOFT.DOCUMENTDB" and Category=="DataPlaneRequests" 
| summarize requestcount=count() by statusCode_s, bin(TimeGenerated, 10m)
| render timechart 

Consultas específicas del recurso

A diferencia de las consultas AzureDiagnostic, las consultas específicas del recurso se ejecutarán en las distintas tablas que se crearon para cada categoría de registro elegida en el cuadro de diálogo de configuración de diagnóstico. Para usar estas tablas, ponga un prefijo a los nombres de tabla de la lista anterior con la cadena CDB. Vamos a revisar un par de ejemplos.

  • Consulta que devuelve el recuento y la solicitud total cobrada de los distintos tipos de operación de Azure Cosmos DB en la última hora.
CDBDataPlaneRequests
| where TimeGenerated >= ago(1h)
| summarize OperationCount = count(), TotalRequestCharged=sum(todouble(RequestCharge)) by OperationName
| order by TotalRequestCharged desc 
  • Cree una consulta que devuelva un grafo de gráficos de tiempo para todas las solicitudes correctas (estado 200) y con limitación de frecuencia (estado 429) en la última hora.
CDBDataPlaneRequests 
| where TimeGenerated >= ago(2h)
| summarize requestcount=count() by StatusCode, bin(TimeGenerated, 10m)
| render timechart