Compartilhar via


Monitorar logs de diagnóstico do Azure Cosmos DB for MongoDB vCore com o Azure Monitor

APLICA-SE AO: MongoDB vCore

Os logs de diagnóstico do Azure são essenciais para capturar logs de recursos do Azure para uma conta do Azure Cosmos DB for MongoDB vCore. Esses logs fornecem insights detalhados e frequentes sobre as operações para recursos com a conta.

Importante

Esse recurso não está disponível com SKUs M25 (com capacidade de intermitência) ou M30 (camada livre).

Pré-requisitos

Criar configurações de diagnóstico

As métricas da plataforma e os logs de atividade são coletados automaticamente. Para coletar logs de recursos e roteá-los externamente do Azure Monitor, você deverá estabelecer uma configuração de diagnóstico. Ao ativar as configurações de diagnóstico para contas do Azure Cosmos DB, você deverá optar por roteá-las para um workspace do Log Analytics ou uma conta de armazenamento do Azure.

  1. Crie variáveis shell para clusterName e resourceGroupName.

    # Variable for API for MongoDB vCore cluster resource
    clusterName="<resource-name>"
    
    # Variable for resource group
    resourceGroupName="<resource-group-name>"
    
  2. Crie variáveis de shell para workspaceName e diagnosticSettingName.

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

    Observação

    Por exemplo, se o nome do workspace do Log Analytics for test-workspace e o nome das configurações de diagnóstico for test-setting:

    workspaceName="test-workspace"
    diagnosticSettingName:"test-setting"
    
  3. Obtenha o identificador de recurso para o cluster da API para MongoDB vCore.

    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. Obtenha o identificador de recursos para o workspace do 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 criar a configuração.

    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

    Ao habilitar a configuração de --export-to-resource-specific true, você garantirá que os eventos de log de solicitação do MongoDB vCore sejam ingeridos com eficiência na tabela vCoreMongoRequests especificamente projetada com um esquema dedicado.

    Por outro lado, deixar de configurar --export-to-resource-specific true resultaria em eventos de log de solicitação da API para MongoDB vCore sendo roteados para a tabela AzureDiagnostics geral.

    É importante observar que, ao criar a configuração de diagnóstico por meio do Portal, atualmente, os eventos de log fluirão para a tabela AzureDiagnostics. Para os clientes que preferem exportar os logs para a tabela VCoreMongoRequests específica do recurso, recomendamos utilizar a CLI do Azure com a opção --export-to-resource-specific true.

Gerenciar configurações de diagnóstico

Algumas vezes você precisa gerenciar as configurações encontrando ou removendo-as. O grupo de comandos az monitor diagnostic-settings inclui subcomandos para o gerenciamento de configurações de diagnóstico.

  1. Liste todas as configurações de diagnóstico associadas ao cluster da API para MongoDB vCore.

    az monitor diagnostic-settings list \
        --resource-group $resourceGroupName \
        --resource $clusterResourceId
    
  2. Exclua uma configuração específica usando o recurso associado e o nome da configuração.

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

Use as consultas de diagnóstico avançado

Use estas consultas específicas de recursos para executar pesquisas comuns de solução de problemas em um cluster da API para MongoDB vCore.

Importante

Esta seção pressupõe que você esteja usando um workspace do Log Analytics com logs específicos de recursos.

  1. Navegue até a seção Logs do cluster da API para MongoDB vCore. Observe a lista de consultas de exemplo.

    Captura de tela da lista de consultas de diagnóstico de consultas de exemplo.

  2. Execute esta consulta para contar o número de solicitações de API para MongoDB vCore com falha agrupadas por código de erro.

    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. Execute esta consulta para duração do runtime para obter as solicitações de API para MongoDB vCoreP99 pelo nome da operação.

    // 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. Execute esta consulta para obter a contagem de solicitações da API para MongoDB vCore agrupadas pela duração total do 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. Execute esta consulta para obter a contagem de solicitações da API para MongoDB vCore por agente de usuário.

    // 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