Share via


Monitorare i log di diagnostica vCore di Azure Cosmos DB per MongoDB con Monitoraggio di Azure

SI APPLICA A: VCore mongoDB

I log di diagnostica di Azure sono essenziali per acquisire i log delle risorse di Azure per un account vCore di Azure Cosmos DB per MongoDB. Questi log forniscono informazioni dettagliate e frequenti sulle operazioni per le risorse con l'account.

Importante

Questa funzionalità non è disponibile con M25 SKU (con burst) o M30 (livello gratuito).

Prerequisiti

  • Un cluster vCore di Azure Cosmos DB per MongoDB esistente.
  • Un'area di lavoro Log Analytics esistente o un account Archiviazione di Azure.

Creare impostazioni di diagnostica

Le metriche della piattaforma e i log attività vengono raccolti automaticamente. Per raccogliere i log delle risorse e instradarli esternamente da Monitoraggio di Azure, è necessario stabilire un'impostazione di diagnostica. Quando si attivano le impostazioni di diagnostica per gli account Azure Cosmos DB, è necessario scegliere di indirizzarli a un'area di lavoro Log Analytics o a un account Archiviazione di Azure.

  1. Creare variabili della shell per clusterName e resourceGroupName.

    # Variable for API for MongoDB vCore cluster resource
    clusterName="<resource-name>"
    
    # Variable for resource group
    resourceGroupName="<resource-group-name>"
    
  2. Creare variabili della shell per workspaceName e diagnosticSettingName,

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

    Nota

    Ad esempio, se il nome dell'area di lavoro Log Analytics è test-workspace e il nome delle impostazioni di diagnostica è test-setting:

    workspaceName="test-workspace"
    diagnosticSettingName:"test-setting"
    
  3. Ottenere l'identificatore di risorsa per il cluster vCore dell'API per 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. Ottenere l'identificatore della risorsa per l'area di lavoro 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. Usare az monitor diagnostic-settings create per creare l'impostazione.

    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

    Abilitando l'impostazione --export-to-resource-specific true , assicurarsi che gli eventi del log delle richieste dell'API per MongoDB vCore vengano inseriti in modo efficiente nella vCoreMongoRequests tabella progettata specificamente con uno schema dedicato.

    Al contrario, l'abbandono della configurazione --export-to-resource-specific true comporta l'instradamento degli eventi del log delle richieste dell'API per MongoDB vCore alla tabella generale AzureDiagnostics .

    È importante notare che quando si crea l'impostazione di diagnostica tramite il portale, gli eventi di log verranno attualmente trasmessi alla AzureDiagnostics tabella. Per i clienti che preferiscono esportare i log nella tabella specifica VCoreMongoRequests della risorsa, è consigliabile usare l'interfaccia della riga di comando di Azure con l'opzione --export-to-resource-specific true .

Gestire le impostazioni di diagnostica

A volte è necessario gestire le impostazioni individuandole o rimuovendole. Il az monitor diagnostic-settings gruppo di comandi include sottocomandi per la gestione delle impostazioni di diagnostica.

  1. Elencare tutte le impostazioni di diagnostica associate all'API per il cluster vCore MongoDB.

    az monitor diagnostic-settings list \
        --resource-group $resourceGroupName \
        --resource $clusterResourceId
    
  2. Eliminare un'impostazione specifica usando la risorsa associata e il nome dell'impostazione.

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

Usare query di diagnostica avanzate

Usare queste query specifiche delle risorse per eseguire ricerche comuni sulla risoluzione dei problemi in un cluster vCore dell'API per MongoDB.

Importante

Questa sezione presuppone che si stia usando un'area di lavoro Log Analytics con log specifici delle risorse.

  1. Passare alla sezione Log del cluster vCore dell'API per MongoDB. Osservare l'elenco delle query di esempio.

    Screenshot of the diagnostic queries list of sample queries.

  2. Eseguire questa query per contare il numero di richieste vCore dell'API non riuscite per MongoDB raggruppate in base al codice di errore.

    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. Eseguire questa query per ottenere l'API per MongoDB vCore richiede P99 la durata del runtime in base al nome dell'operazione.

    // 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. Eseguire questa query per ottenere il conteggio delle richieste vCore dell'API per MongoDB raggruppate per durata totale di 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. Eseguire questa query per ottenere il numero di richieste vCore dell'API per MongoDB da parte dell'agente utente.

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