Share via


Supervisión de registros de diagnóstico de núcleo virtual de Azure Cosmos DB for MongoDB con Azure Monitor

SE APLICA A: núcleo virtual de MongoDB

Los registros de diagnóstico de Azure son esenciales para capturar registros de recursos de Azure para una cuenta de núcleo virtual de Azure Cosmos DB for MongoDB. Estos registros proporcionan información detallada y frecuente sobre las operaciones de los recursos con la cuenta.

Importante

Esta característica no está disponible con las SKU de M25 (ampliable) o de M30 (nivel libre).

Requisitos previos

Creación de configuración de diagnóstico

Las métricas de la plataforma y los registros de actividad se recopilan automáticamente. Para recopilar registros de recursos y enrutarlos externamente desde Azure Monitor, debe establecer una configuración de diagnóstico. Al activar la configuración de diagnóstico para las cuentas de Azure Cosmos DB, debe elegir enrutarlos a un área de trabajo de Log Analytics o a una cuenta de Azure Storage.

  1. Cree variables de shell para clusterName y resourceGroupName.

    # Variable for API for MongoDB vCore cluster resource
    clusterName="<resource-name>"
    
    # Variable for resource group
    resourceGroupName="<resource-group-name>"
    
  2. Cree variables de shell para workspaceName y diagnosticSettingName,

    # Variable for workspace name
    workspaceName="<storage-account-name>"
    
    # Variable for diagnostic setting name
    diagnosticSettingName="<diagnostic-setting-name>"
    

    Nota:

    Por ejemplo, si el nombre del área de trabajo de Log Analytics es test-workspace y el nombre de la configuración de diagnóstico es test-setting:

    workspaceName="test-workspace"
    diagnosticSettingName:"test-setting"
    
  3. Obtenga el identificador de recursos para la API del clúster de núcleo virtual de MongoDB.

    az cosmosdb mongocluster show \
        --resource-group $resourceGroupName \
        --cluster-name $clusterName
    
    clusterResourceId=$(az cosmosdb mongocluster show \
        --resource-group $resourceGroupName \
        --cluster-name $clusterName \
        --query "id" \
        --output "tsv" \
    )
    
  4. Obtenga el identificador de recursos para el área de trabajo de Log Analytics.

    az monitor log-analytics workspace show \
        --resource-group $resourceGroupName \
        --name $workspaceName
    
    workspaceResourceId=$(az monitor log-analytics workspace show \
        --resource-group $resourceGroupName \
        --name $workspaceName \
        --query "id" \
        --output "tsv" \
    )
    
  5. Use az monitor diagnostic-settings create para crear el valor.

    az monitor diagnostic-settings create \
        --resource-group $resourceGroupName \
        --name $diagnosticSettingName \
        --resource $clusterResourceId \
        --export-to-resource-specific true \
        --logs '[{category:vCoreMongoRequests,enabled:true,retention-policy:{enabled:false,days:0}}]' \
        --workspace $workspaceResourceId
    

    Importante

    Al habilitar la configuración de --export-to-resource-specific true, se asegura de que los eventos del registro de peticiones de la API para núcleo virtual de MongoDB se ingieren de forma eficiente en la tabla de vCoreMongoRequests diseñada específicamente con un esquema dedicado.

    Por el contrario, si no se configura --export-to-resource-specific true, los eventos del registro de peticiones de la API para núcleo virtual de MongoDB se enrutarían a la tabla general AzureDiagnostics.

    Es importante tener en cuenta que al crear la configuración de diagnóstico a través del portal, los eventos de registro fluirán actualmente a la tabla AzureDiagnostics. Para los clientes que prefieren exportar registros a la tabla VCoreMongoRequests específica del recurso, se recomienda usar la CLI de Azure con la opción --export-to-resource-specific true.

Administrar la configuración de diagnóstico

A veces es necesario administrar las configuraciones encontrándolas o eliminándolas. El grupo de comandos az monitor diagnostic-settings incluye subcomandos para la administración de la configuración de diagnóstico.

  1. Enumere todas las opciones de diagnóstico asociadas con la API para el clúster de núcleo virtual de MongoDB.

    az monitor diagnostic-settings list \
        --resource-group $resourceGroupName \
        --resource $clusterResourceId
    
  2. Elimine una configuración específica mediante el recurso asociado y el nombre de la configuración.

    az monitor diagnostic-settings delete \
        --resource-group $resourceGroupName \
        --name $diagnosticSettingName \
        --resource $clusterResourceId
    

Uso de consultas de diagnóstico avanzadas

Use estas consultas específicas de recursos para realizar investigaciones comunes de solución de problemas en una API para el clúster de núcleo virtual de MongoDB.

Importante

En esta sección se supone que usa un área de trabajo de Log Analytics con registros específicos del recurso.

  1. Vaya a la sección Registros del clúster de la API para el clúster de núcleo virtual de MongoDB. Observe la lista de consultas de ejemplo.

    Screenshot of the diagnostic queries list of sample queries.

  2. Ejecute esta consulta para contar el número de solicitudes de la API para el clúster de núcleo virtual de MongoDB con errores agrupadas por código de error.

    VCoreMongoRequests
    // Time range filter:  | where TimeGenerated between (StartTime .. EndTime)
    // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name"
    | where ErrorCode != 0
    | summarize count() by bin(TimeGenerated, 5m), ErrorCode=tostring(ErrorCode)
    
  3. Ejecute esta consulta para obtener las solicitudes de la API para de núcleo virtual de MongoDB P99 duración del runtime por nombre de operación.

    // Mongo vCore requests P99 duration by operation 
    // Mongo vCore requests P99 runtime duration by operation name. 
    VCoreMongoRequests
    // Time range filter:  | where TimeGenerated between (StartTime .. EndTime)
    // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name"
    | summarize percentile(DurationMs, 99) by bin(TimeGenerated, 1h), OperationName
    
  4. Ejecute esta consulta para obtener el recuento de solicitudes de la API para núcleo virtual de MongoDB agrupadas por duración total de runtime.

    // Mongo vCore requests binned by duration 
    // Count of Mongo vCore requests binned by total runtime duration. 
    VCoreMongoRequests
    // Time range filter:  | where TimeGenerated between (StartTime .. EndTime)
    // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name"
    | project TimeGenerated, DurationBin=tostring(bin(DurationMs, 5))
    | summarize count() by bin(TimeGenerated, 1m), tostring(DurationBin)
    
  5. Ejecute esta consulta para obtener el recuento de solicitudes de la API para núcleo virtual de MongoDB por agente de usuario.

    // Mongo vCore requests by user agent 
    // Count of Mongo vCore requests by user agent. 
    VCoreMongoRequests
    // Time range filter:  | where TimeGenerated between (StartTime .. EndTime)
    // Resource id filter: | where _ResourceId == "/subscriptions/00000000-0000-0000-0000-000000000000/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name"
    | summarize count() by bin(TimeGenerated, 1h), UserAgent