Cloud Monitoring으로 데이터베이스 모니터링

이 페이지에서는 Cloud Monitoring 대시보드를 사용하여 사용 가능한 측정항목을 보고, 맞춤 대시보드를 만들고, 알림을 설정하는 방법을 설명합니다.

MongoDB 호환성을 갖춘 Firestore 측정항목 보기

다양한 MongoDB 호환성을 갖춘 Firestore 측정항목을 보고 차트를 만들려면 다음 중 하나를 사용하세요.

  • Google Cloud 콘솔의 Firestore 섹션에 있는 Monitoring 페이지 이 페이지에는 사전 정의된 모니터링 대시보드가 포함되어 있습니다. 최대 1개의 맞춤 대시보드를 만들 수도 있습니다. 데이터베이스의 모니터링 페이지에 액세스하려면 다음 단계를 따르세요.

    1. Google Cloud 콘솔에서 Firestore 데이터베이스 페이지를 엽니다.

      데이터베이스로 이동

    2. 목록에서 데이터베이스를 선택합니다.

    3. 탐색 메뉴에서 Monitoring을 클릭하여 대시보드를 엽니다.

  • Google Cloud 콘솔의 Cloud Monitoring 내 측정항목 탐색기 차트 만들기에 대한 자세한 내용은 측정항목 탐색기로 차트 만들기를 참고하세요.

모니터링 리소스

Cloud Monitoring의 모니터링 리소스는 가상 머신, 데이터베이스, 애플리케이션과 같은 논리적 또는 실제 항목을 나타냅니다. 모니터링 리소스에는 탐색하거나, 대시보드를 통해 보고하거나, 알림을 만드는 데 사용할 수 있는 고유한 측정항목 집합이 포함되어 있습니다. 각 리소스에는 리소스에 관한 추가 정보를 보유하는 키-값 쌍인 리소스 라벨 집합도 있습니다. 리소스 라벨은 리소스와 연결된 모든 측정항목에 사용할 수 있습니다.

Cloud Monitoring API를 사용하여 MongoDB 호환성을 갖춘 Firestore 성능은 다음 리소스로 모니터링됩니다.

리소스 설명
firestore.googleapis.com/Database project, location , database_id에 대한 분석을 제공하는 모니터링 리소스 유형입니다 . 특정 이름 없이 생성된 데이터베이스의 경우 database_id 라벨은 (default)가 됩니다.

측정항목

Firestore의 전체 측정항목 목록은 Firestore 측정항목을 참고하세요. 다음 섹션에서는 사용 가능한 일부 측정항목을 설명합니다.

서비스 런타임 측정항목

serviceruntime 측정항목은 프로젝트의 트래픽에 대한 대략적인 개요를 제공합니다. 이러한 측정항목은 대부분의 Google Cloud API에서 사용할 수 있습니다. consumed_api 모니터링 리소스 유형에는 이러한 공통 측정항목이 포함됩니다. 이 측정항목은 30분마다 샘플링되므로 데이터가 평활화됩니다.

serviceruntime 측정항목의 중요한 리소스 라벨은 method입니다. 이 라벨은 호출된 기본 RPC 메서드를 나타냅니다. 호출하는 SDK 메서드의 이름은 기본 RPC 메서드와 동일하지 않을 수 있습니다. SDK가 상위 수준의 API 추상화를 제공하기 때문입니다. 그러나 애플리케이션이 Firestore와 상호작용하는 방식을 이해하려면 RPC 메서드의 이름을 기반으로 측정항목을 이해하는 것이 중요합니다.

특정 SDK 메서드의 기본 RPC 메서드가 무엇인지 알아야 하는 경우 API 문서를 참고하세요.

다음 서비스 런타임 측정항목을 사용하여 데이터베이스를 모니터링하세요.

api/request_latencies

api/request_latencies 측정항목은 완료된 모든 요청에 대한 지연 시간 분포를 제공합니다.

Firestore는 Firestore 서비스 구성요소의 측정항목을 기록합니다. 지연 시간 측정항목에는 Firestore가 요청을 받는 시점부터 스토리지 레이어와의 상호작용을 포함하여 Firestore가 응답 전송을 완료하는 시점까지의 시간이 포함됩니다. 따라서 클라이언트와 Firestore 서비스 간의 왕복 지연 시간(rtt)은 이러한 측정항목에 포함되지 않습니다.

문서 작업 측정항목

Firestore는 읽기, 쓰기, 삭제 수를 제공합니다. 쓰기 측정항목은 'CREATE' 및 'UPDATE' 작업 간의 세부정보를 제공합니다. 이러한 측정항목은 CRUD 작업과 일치합니다.

다음 측정항목을 사용하여 데이터베이스가 읽기 또는 쓰기 집약적인지와 새 문서 대비 삭제된 문서의 비율을 파악할 수 있습니다.

  • document/delete_ops_count: 성공적인 문서 삭제 횟수입니다.
  • document/read_ops_count: 쿼리 또는 조회를 통해 성공한 문서 읽기 횟수입니다.
  • document/write_ops_count: 성공적인 문서 쓰기 횟수입니다.

색인 측정항목

색인 팬아웃을 이해하기 위해 색인 쓰기 속도를 document/write_ops_count 측정항목과 대조할 수 있습니다.

  • index/write_count: 색인 쓰기 수입니다.

TTL 측정항목

MongoDB 호환성을 갖춘 Firestore의 TTL 측정항목은 적용된 TTL 정책의 효과를 모니터링하는 데 사용됩니다.

  • document/ttl_deletion_count: TTL 서비스에서 삭제한 총 문서 수입니다.
  • document/ttl_expiration_to_deletion_delays: TTL이 있는 문서가 만료된 시점과 실제로 삭제된 시점 사이에 경과한 시간입니다.

커스텀 Cloud Monitoring 대시보드 만들기

Cloud Monitoring에서 커스텀 대시보드를 사용하면 관련 있는 정보를 체계적인 방식으로 표시할 수 있습니다. 예를 들어 프로덕션 환경에서 프로젝트의 성능 측정항목 및 알림 정책을 표시하도록 대시보드를 만들 수 있습니다.

커스텀 대시보드 설정에 대한 자세한 내용은 커스텀 대시보드 관리대시보드 위젯 추가를 참조하세요.

알림 정책 만들기

Cloud Monitoring을 사용하면 측정항목 조건이 변경될 때 이를 알려주는 알림을 만들 수 있습니다. 이러한 알림을 사용해서 잠재적인 문제가 사용자에게 영향을 주기 전에 알림을 받을 수 있습니다.

알림 만들기에 대한 자세한 내용은 측정항목 기준점 알림 정책 만들기을 참조하세요.

다음 예시에서는 지연 시간 알림 정책을 만듭니다. 알림 정책은 순환 기간 5분 동안 p99 지연 시간을 확인합니다. p99 지연 시간이 5분 동안 250밀리초를 초과하면 알림이 트리거됩니다.

콘솔

  1. Google Cloud 콘솔에서 모니터링 페이지로 이동한 후  알림을 선택합니다.

    Monitoring으로 이동

  2. 정책 만들기를 선택합니다.

  3. Consumed API 리소스에서 요청 지연 시간을 선택합니다.

  4. Firestore 네이티브 데이터베이스에 firestore.googleapis.com의 서비스 필터를 추가합니다.

  5. 다음을 클릭하여 트리거를 구성합니다.

  6. 조건 유형기준점으로 선택합니다.

    기준점 조건이 기준점 250밀리초로 설정됩니다. p99 지연 시간 값이 순환 기간(5분) 동안 동일하게 유지되면 알림이 트리거됩니다.

  7. 기준점250으로 설정합니다.

  8. 다음을 클릭하여 알림을 구성합니다.

  9. 알림 정책 이름을 설정하고 다음을 클릭합니다.

  10. 알림 구성을 검토한 후 정책 만들기를 클릭합니다.

MQL

Monitoring Query Language(MQL) 쿼리를 사용하여 동일한 지연 시간 알림 정책을 구현할 수 있습니다. MQL 사용에 대한 예시는 샘플 MQL 쿼리를 참조하세요.

      fetch consumed_api
      | metric 'serviceruntime.googleapis.com/api/request_latencies'
      | filter (resource.service == 'firestore.googleapis.com')
      | group_by 5m,
          [value_request_latencies_percentile:
            percentile(value.request_latencies, 99)]
      | every 5m
      | condition val() > 0.25 's'