Google I/O 2023에서 Firebase의 주요 소식을 확인하세요. 자세히 알아보기

Cloud Firestore 활동 모니터링

이 페이지에서는 Cloud Firestore 사용량을 모니터링하고 앱의 잠재적 문제를 파악하는 방법에 대해 설명합니다. 앱의 사용량을 살펴보면 청구 비용을 예상할 수 있습니다. 또한 데이터베이스 작업의 명확한 파악이 가능해 이상이 발견될 경우 문제 해결 도구로도 유용합니다.

사용량 대시보드

Google Cloud Platform Console 및 Firebase Console에는 시간 경과에 따른 문서 읽기, 쓰기, 삭제를 보여주는 Cloud Firestore 사용량 대시보드가 포함되어 있습니다.

GCP Console

Cloud Firestore 사용량 페이지(GCP Console)로 이동

GCP Console의 Cloud Firestore 사용량 대시보드

액세스 제어

사용량 대시보드에는 monitoring.timeSeries.list Cloud IAM 권한이 필요합니다. 프로젝트 소유자, 편집자, 뷰어 역할이 이 권한을 부여합니다. Cloud Monitoring 역할 또는 커스텀 역할을 통해 이 권한을 부여할 수도 있습니다.

Firebase Console

Cloud Firestore 사용량 페이지(Firebase Console)로 이동

Firebase Console의 Cloud Firestore 사용량 대시보드

사용량 대시보드 및 결제 보고서

Firebase 및 Cloud Console의 Cloud Firestore 사용량 대시보드는 예상 사용량을 제공하며 대시보드를 통해 사용량 급증을 파악할 수 있습니다. 하지만 대시보드에 표시된 청구 대상 작업이 정확하지 않을 수 있으며 청구 사용량이 더 높을 수 있습니다. 불일치가 발생하는 경우 언제나 결제 보고서가 사용량 대시보드보다 우선합니다.

사용량 대시보드와 청구 사용량 사이에 불일치를 일으킬 수 있는 작업은 다음과 같습니다.

  • 가져오기 및 내보내기 작업: 이러한 작업으로 수행되는 읽기 및 쓰기는 사용량 대시보드에 표시되지 않습니다.
  • 노옵스(no-ops) 확인 전용 쓰기: 문서의 존재 여부만 확인하는 쓰기는 청구 대상 읽기 작업에 속하지만 쓰기 사용량 대시보드에 각각 'UPDATE_NOOP' 및 'DELETE_NOOP'로 표시됩니다.
  • 노옵스(no-ops) 쓰기: 필드 값을 변경하지 않는 업데이트 또는 삭제된 문서에 대한 쓰기 등 데이터베이스가 변경되지 않는 작업은 사용량 대시보드에 'UPDATE_NOOP' 또는 'DELETE_NOOP'로 표시될 수 있습니다. 'NOOP'로 표시되더라도 청구 대상 작업에 속합니다.
  • 축소된 쓰기: 동일한 문서에 여러 번의 쓰기 작업이 연속으로 빠르게 발생하는 경우 사용량 대시보드는 여러 번의 쓰기를 한 번의 쓰기로 축소하여 계산할 수 있습니다. 청구 사용량에서 각각의 쓰기는 별도로 계산됩니다.

    또한 사용량 대시보드는 서버 타임스탬프, 숫자 증가, 배열 통합 작업과 같은 필드 변환에 대한 쓰기도 축소합니다. 사용량 대시보드는 필드 변환의 여러 작업을 단일 작업으로 계산할 수 있습니다.

  • 0개의 결과를 반환하는 쿼리: 결과가 0개인 쿼리에 대해서는 읽기 작업 1회에 대한 비용이 발생합니다. 이 사용량에는 요금이 청구되지만 사용량 대시보드에는 표시되지 않습니다.
  • COUNT와 같이 집계 쿼리와 연결된 읽기 작업: 이 사용량에는 요금이 청구되지만 사용량 대시보드에는 표시되지 않습니다.

보안 규칙 사용

또한 Firebase Console은 규칙 호출을 한 눈에 볼 수 있는 유용한 보안 규칙 평가 대시보드를 제공합니다. Cloud Monitoring의 자세한 분석으로 이 대시보드를 보완할 수 있습니다.

규칙 페이지로 이동

Firebase Console의 Cloud Firestore 규칙 모니터링 대시보드

일일 할당량

Firebase 프로젝트를 만들면 Google Cloud에도 프로젝트가 생성됩니다. GCP Console의 App Engine 할당량 페이지는 읽기, 쓰기, 색인 쓰기, 삭제, 저장된 데이터, 네트워크 이그레스와 같은 Cloud Firestore 사용량 정보를 매일 추적합니다.

할당량 페이지로 이동

App Engine 할당량 페이지의 Cloud Firestore 사용량

Cloud Monitoring

Cloud Monitoring은 Google Cloud 제품에서 측정항목, 이벤트, 메타데이터를 수집합니다. Cloud Firestore Console의 사용량 대시보드는 동일한 측정항목 데이터를 보고합니다. 커스텀 대시보드와 사용량 알림을 설정하려면 Cloud Monitoring을 사용합니다.

Cloud Monitoring에는 다음과 같은 Cloud Firestore 측정항목이 포함됩니다.

측정항목 이름 설명
문서 읽기

성공적인 문서 읽기 횟수입니다. 읽기 유형(LOOKUP 또는 QUERY)에 따라 이 측정항목을 분류할 수 있습니다.

이 측정항목에는 내보내기 관리 작업의 읽기가 포함되지 않습니다.

문서 쓰기

성공적인 문서 쓰기 횟수입니다. 쓰기 유형(CREATE 또는 UPDATE)에 따라 측정항목을 분류할 수 있습니다.

이 측정항목에는 가져오기 관리 작업의 쓰기가 포함되지 않습니다.

문서 삭제 성공적인 문서 삭제 횟수입니다.
활성 연결

데이터베이스에 대한 활성 연결 수입니다.

각 활성 모바일 및 웹 SDK는 여러 스냅샷 리스너 간에 공유할 수 있는 단일 연결을 유지합니다. 서버 클라이언트 라이브러리는 스냅샷 리스너당 하나의 연결을 만듭니다.

스냅샷 리스너

모든 활성 연결의 스냅샷 리스너 수입니다.

TTL(수명) 삭제 횟수

TTL(수명) 정책이 삭제한 총 문서 수입니다.

삭제 지연에 대한 TTL(수명) 만료

TTL(수명) 정책에 따라 문서가 만료된 시점과 실제로 삭제된 시점 사이에 경과한 시간입니다.

실시간 업데이트 사용량

활성 연결 및 스냅샷 리스너 측정항목은 실시간 업데이트 사용량을 측정합니다.

사용자가 휴대전화에서 앱을 연다고 가정해 보겠습니다. 그러면 앱이 Cloud Firestore에 연결되고 10개의 쿼리를 구독합니다. 이 경우 측정항목은 1개의 활성 연결과 10개의 스냅샷 리스너 기준으로 증가합니다.

샘플링 레이트

Cloud Firestore 측정항목은 매분 샘플링되지만 업데이트 내용이 대시보드에 표시되려면 최대 4분이 걸릴 수 있습니다.

Cloud Monitoring 대시보드 설정

대시보드에 Cloud Firestore 측정항목을 설정하려면 커스텀 대시보드 관리대시보드 위젯 추가를 참조하세요.

다음 단계