다음을 통해 공유


Azure Monitor를 사용하여 Azure Cosmos DB for MongoDB vCore 진단 로그 모니터링

적용 대상: MongoDB vCore

Azure의 진단 로그는 Azure Cosmos DB for MongoDB vCore 계정에 대한 Azure 리소스 로그를 캡처하는 데 필수적입니다. 이러한 로그는 계정으로 리소스 작업에 대해 자세한 인사이트를 빈번하게 제공합니다.

Important

이 기능은 M25(버스트 가능) 또는 M30(무료 계층) SKU에서 사용할 수 없습니다.

필수 조건

진단 설정 만들기

플랫폼 메트릭 및 활동 로그는 자동으로 수집됩니다. 리소스 로그를 수집하고 Azure Monitor에서 외부적으로 라우팅하려면 진단 설정을 수행해야 합니다. 자세한 내용은 Azure Monitor에서 진단 설정 만들기를 참조하세요.

진단 설정 관리

경우에 따라 설정을 찾거나 제거하여 관리해야 합니다. az monitor diagnostic-settings 명령 그룹에는 진단 설정 관리를 위한 하위 명령이 포함됩니다.

  1. MongoDB vCore용 API 클러스터와 연결된 모든 진단 설정을 나열합니다.

    az monitor diagnostic-settings list \
        --resource-group $resourceGroupName \
        --resource $clusterResourceId
    
  2. 연결된 리소스 및 설정 이름을 사용하여 특정 설정을 삭제합니다.

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

고급 진단 쿼리 사용

이러한 리소스별 쿼리를 사용하여 MongoDB vCore용 API 클러스터에서 일반적인 문제 해결 연구를 수행합니다.

Important

이 섹션에서는 리소스별 로그와 함께 Log Analytics 작업 영역을 사용한다고 가정합니다.

  1. MongoDB vCore용 API 클러스터의 로그 섹션으로 이동합니다. 샘플 쿼리 목록을 관찰합니다.

    샘플 쿼리의 진단 쿼리 목록 스크린샷.

  2. 이 쿼리를 실행하여 오류 코드별로 그룹화된 MongoDB vCore용 API 요청의 실패한 수를 계산합니다.

    VCoreMongoRequests
    // Time range filter:  | where TimeGenerated between (StartTime .. EndTime)
    // Resource id filter: | where _ResourceId == "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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. 이 쿼리를 실행하여 작업 이름별로 MongoDB vCore용 API 요청P99 런타임 기간을 가져옵니다.

    // 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name"
    | summarize percentile(DurationMs, 99) by bin(TimeGenerated, 1h), OperationName
    
  4. 이 쿼리를 실행하여 총 런타임 기간별로 그룹화된 MongoDB vCore용 API 요청의 API 수를 가져옵니다.

    // 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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. 이 쿼리를 실행하여 사용자 에이전트별로 MongoDB vCore용 API 요청의 수를 가져옵니다.

    // 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group-name/providers/microsoft.documentdb/mongoclusters/my-cluster-name"
    | summarize count() by bin(TimeGenerated, 1h), UserAgent