Share via


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

APLICA-SE A: MongoDB vCore

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

Importante

Este recurso não está disponível com M25 SKUs (burstable) ou M30 (free-tier).

Pré-requisitos

Criar as definições de diagnóstico

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

  1. Crie variáveis de 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. Criar 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>"
    

    Nota

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

    workspaceName="test-workspace"
    diagnosticSettingName:"test-setting"
    
  3. Obtenha o identificador de recurso para a API para o cluster vCore do 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. Obtenha o identificador de recurso para o espaço de trabalho 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 --export-to-resource-specific true configuração, você garante que os eventos de log de solicitação vCore da API para MongoDB sejam ingeridos de forma eficiente na vCoreMongoRequests tabela especificamente projetada com um esquema dedicado.

    Por outro lado, negligenciar a configuração --export-to-resource-specific true resultaria na API para eventos de log de solicitação vCore do MongoDB sendo roteada para a tabela geral AzureDiagnostics .

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

Gerenciar configurações de diagnóstico

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

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

    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
    

Usar consultas de diagnóstico avançado

Use essas consultas específicas de recursos para executar pesquisas comuns de solução de problemas em uma API para cluster vCore do MongoDB.

Importante

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

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

    Screenshot of the diagnostic queries list of sample queries.

  2. Execute esta consulta para contar o número de APIs com falha para solicitações vCore do MongoDB 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 obter a API para MongoDB vCore solicita P99 duração de tempo de execução por 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 API para solicitações vCore do MongoDB agrupadas por duração total de tempo de execução.

    // 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 API para solicitações vCore do MongoDB pelo agente do 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