Azure Monitor를 사용하여 Azure Cosmos DB에 대한 경고 만들기

적용 대상: NoSQL MongoDB Cassandra Gremlin 테이블

경고는 Azure Cosmos DB 리소스의 가용성 및 응답성을 모니터링하는 반복 테스트를 설정하는 데 사용됩니다. 경고는 이메일 형식으로 알림을 보내거나 메트릭 중 하나가 임계값에 도달하거나 특정 이벤트가 활동 로그에 기록될 때 Azure Function을 실행할 수 있습니다.

Azure Cosmos DB 계정의 메트릭, 활동 로그 이벤트 또는 Log Analytics 로그를 기반으로 경고를 받을 수 있습니다.

  • 메트릭 - 이 경고는 특정 메트릭의 값이 사용자가 할당한 임계값을 초과했을 때 트리거됩니다. 예를 들어, 소비된 총 요청 단위가 1000RU/s를 초과하는 경우입니다. 조건에 처음 부합했을 때와, 조건에 더 이상 부합하지 않게 되었을 때 모두 경고가 트리거됩니다. Azure Cosmos DB 사용할 수 있는 다양한 메트릭은 모니터링 데이터 참조 문서를 참조하세요.

  • 활동 로그 이벤트 – 이 경고는 특정 이벤트가 발생할 때 트리거됩니다. 예를 들어 Azure Cosmos DB 계정의 키에 액세스하거나 새로 고치는 경우입니다.

  • Log Analytics 이 경고는 Log Analytics 쿼리 결과의 지정된 속성 값이 할당한 임계값을 초과할 때 트리거됩니다. 예를 들어 Log Analytics 쿼리를 작성하여 Azure Cosmos DB에서 논리 파티션 키의 스토리지가 20GB 논리 파티션 키 저장 한도에 도달하는지 모니터링할 수 있습니다.

Azure Cosmos DB 창 또는 Azure Portal Azure Monitor 서비스에서 경고를 설정할 수 있습니다. 두 인터페이스 모두 동일한 옵션을 제공합니다. 이 문서는 Azure Monitor를 사용하여 Azure Cosmos DB에 대한 경고를 설정하는 방법을 보여줍니다.

경고 규칙 만들기

이 섹션에서는 요청 속도가 제한될 때 수신되는 HTTP 상태 코드 429를 수신할 때 경고를 만드는 방법을 보여줍니다. 예를 들어 속도가 제한된 요청이 100개 이상인 경우 경고를 받을 수 있습니다. 이 문서에서는 HTTP 상태 코드를 사용하여 이러한 시나리오에 대한 경고를 구성하는 방법을 보여줍니다. 비슷한 단계를 사용하여 다른 유형의 경고도 구성할 수 있습니다. 요구 사항에 따라 다른 조건을 선택하기만 하면 됩니다.

여기에서 설명을 위해 임계값을 초과하는 429의 수를 기반으로 한 경고 시나리오를 사용합니다. 데이터베이스 또는 컨테이너에서 429가 나타나는 것이 본질적으로 잘못된 것이 있다는 의미는 아닙니다. 일반적으로 프로덕션 워크로드에서 요청의 1~5%가 429로 표시되고 전체 애플리케이션 대기 시간이 요구 사항 내에 있으면 프로비저닝한 처리량(RU/s)을 완전히 사용하고 있다는 정상적이고 정상적인 신호입니다. 429 예외를 해석하고 디버그하는 방법에 대해 자세히 알아봅니다.

  1. Azure Portal에 로그인합니다.

  2. 왼쪽 탐색 모음에서 모니터를 선택하고 경고를 선택합니다.

  3. 새 경고 규칙 단추를 선택하여 규칙 만들기 페이지를 엽니다.

  4. 범위 섹션을 작성합니다.

    • 리소스 선택 창을 열고 다음을 구성합니다.

    • 구독 이름을 선택합니다.

    • 리소스 종류에 대한 Azure Cosmos DB 계정을 선택합니다.

    • Azure Cosmos DB 계정의 위치입니다.

    • 세부 정보를 입력한 후에는 선택한 범위의 Azure Cosmos DB 계정 목록이 표시됩니다. 경고를 구성하려는 항목을 선택하고 완료를 선택합니다.

  5. 조건 섹션을 입력합니다.

    • 조건 선택 창을 열어 신호 선택 페이지를 열고 다음을 구성합니다.

    • 신호를 선택합니다. 신호 유형메트릭, 활동 로그 또는 로그(Log Analytics)일 수 있습니다. 총 요청 단위 메트릭에 비율 제한이 발생할 때 경고를 받으려면 이 시나리오에 대해 메트릭을 선택합니다.

    • 모니터 서비스에 대해 모두를 선택

    • 신호 이름 선택. HTTP 상태 코드에 대한 경고를 가져오려면 총 요청 단위 신호를 선택합니다.

    • 이제 경고를 트리거하는 논리를 정의하고 차트를 사용하여 Azure Cosmos DB 계정의 추세를 볼 수 있습니다. 총 요청 단위 메트릭은 차원을 지원합니다. 이러한 차원을 사용하여 메트릭을 필터링 할 수 있습니다. 예를 들어 차원을 사용하여 모니터링하려는 특정 데이터베이스 또는 컨테이너로 필터링할 수 있습니다. 차원이 선택되지 않은 경우 이 값은 무시됩니다.

    • 차원 이름으로 StatusCode를 선택합니다. 사용자 지정 값 추가를 선택하고 상태 코드를 429로 설정합니다.

    • 경고 논리에서 임계값고정으로 설정합니다. 정적 임계값은 사용자 정의 임계값을 사용하여 규칙을 평가하는 반면 동적 임계값은 기본 기계 학습 알고리즘을 사용하여 메트릭 동작 패턴을 지속적으로 학습하고 임계값을 자동으로 계산합니다.

    • 연산자보다 큼으로, 집계 유형총계로, 임계값100으로 설정합니다. 이 논리를 사용하면 클라이언트에 429 상태 코드가 있는 100개 이상의 요청이 표시되면 경고가 트리거됩니다. 또한 요구 사항에 따라 집계 유형, 집계 세분성 및 평가 빈도를 구성할 수 있습니다.

    • 양식을 작성한 후 완료를 선택합니다. 다음 스크린샷은 경고 논리의 세부 정보를 보여줍니다.

      Configure the logic to receive alerts for rate limited/429 requests

  6. 작업 그룹 섹션을 작성합니다.

    • 규칙 만들기에서 기존 작업 그룹을 선택하거나 새 그룹을 만듭니다. 작업 그룹을 사용하면 경고 조건이 발생할 때 수행할 작업을 정의할 수 있습니다. 이 예제에서는 경고가 트리거될 때 이메일 알림을 받을 새 작업 그룹을 만듭니다. 작업 그룹 추가 창을 열고 다음 세부 정보를 입력합니다.

    • 작업 그룹 이름 - 작업 그룹 이름은 리소스 그룹 내에서 고유해야 합니다.

    • 약식 이름 - 작업 그룹의 짧은 이름입니다. 이 값은 알림의 원본인 작업 그룹을 식별하기 위해 이메일 및 SMS 알림에 포함됩니다.

    • 이 작업 그룹을 만들 구독 및 리소스 그룹을 선택합니다.

    • 작업 이름을 입력하고 작업 유형으로이메일/SMS 메시지/푸시/음성을 선택합니다. 다음 스크린샷은 경고 유형의 세부 정보를 보여줍니다.

      Configure the action type such as email notification to receive the alert

  7. 경고 규칙 세부 정보 섹션을 작성합니다.

    • 규칙의 이름을 정의하고, 선택적 설명, 경고의 심각도 수준을 제공하고, 규칙을 만들 때 규칙을 사용하도록 설정할지 여부를 선택한 다음, 규칙 경고 만들기를 선택하여 메트릭 규칙 경고를 만듭니다.

경고를 만든 후 10분 이내에 활성화됩니다.

일반적인 경고 시나리오

경고를 사용할 수 있는 몇 가지 시나리오는 다음과 같습니다.

  • Azure Cosmos DB 계정의 키가 업데이트되는 경우
  • 컨테이너, 데이터베이스 또는 영역의 데이터 또는 인덱스 사용이 특정 바이트 수를 초과하는 경우.
  • 논리 파티션 키의 스토리지가 Azure Cosmos DB 20GB 논리 파티션 저장 한도에 도달하는 경우.
  • 정규화된 RU/s 소비가 특정 비율 보다 큰 경우. 정규화된 RU 소비 메트릭은 복제본 집합 내의 최대 처리량 사용률을 제공합니다. 자세한 내용은 RU/s를 모니터링하는 방법 문서를 참조하세요.
  • 영역을 추가하거나 제거하거나 오프라인으로 전환하는 경우.
  • 데이터베이스나 컨테이너를 만들거나 삭제하거나 업데이트하는 경우.
  • 데이터베이스 또는 컨테이너의 처리량이 변경된 경우.

다음 단계