지금까지 Firebase 실시간 데이터베이스는 데이터베이스 성능에 대한 자세한 정보를 제공하지 않았습니다. 이제는
Firebase Command Line Interface(CLI)에 기본 제공되는 프로파일러를 사용하여 데이터베이스 인스턴스의 성능을 파악할 수 있습니다. 데이타 경로 별로 대역폭 사용량 및 속도 등 데이터베이스 쓰기 및 읽기 성능을 쉽게 모니터링할 수 있습니다.
프로파일링 작업을 시작하려면 최신 버전의
Firebase CLI가 설치되어 있고 초기화되어 있어야 합니다. database:profile 명령어를 사용하여 프로파일링을 시작해 보세요.
firebase database:profile
그러면 실시간 데이터베이스에서 스트리밍 작업이 시작됩니다. Enter 키를 누르면 CLI가 속도, 대역폭, 인덱싱되지 않은 쿼리의 세 가지 주요 범주로 구분된 요약 테이블에 데이터를 취합합니다. 속도 및 대역폭 보고서는 작업 유형(쓰기 또는 읽기)과 실시간 데이터베이스의 경로로 더욱 세분화됩니다. 25개가 넘는 하위 항목을 가진 위치가 있는 경우(예: SDK에서 .push를 사용하는 경우), 요약 테이블이 이러한 경로를 단일 항목으로 축소하고 푸시 ID를 $wildcard로 대체합니다.
- 속도*
경로, 요청 적중 횟수, 서버의 요청 처리 소요 시간(밀리초), 권한에 따라 경로가 거부된 횟수의 네 가지 항목을 표시합니다.
대역폭**
이 테이블에서는 경로, 경로에 대한 대역폭의 총 크기, 작업당 평균 대역폭의 세 가지 항목을 표시합니다.
- 인덱싱되지 않은 쿼리
여기서는 경로, 규칙에 추가해야 하는 인덱스 규칙, 위치 쿼리 횟수의 세 가지 항목을 보여줍니다. 이러한 쿼리에 대한 경고도 SDK 로그에 표시됩니다.
이것으로 충분하지 않다면 어떻게 해야 할까요?
--raw 플래그(출력 파일을 지정하려는 경우 --output도 사용)를 사용하여 서버로부터 raw 정보를 수집하여 연결된 애플리케이션에 대한 IP 주소 및 사용자 에이전트 문자열과 같은 더욱 세부적인 정보를 얻을 수 있습니다. 정보를 수집할 수 있는 가능한 작업과 이러한 작업이 보여주는 사항이 나와 있는 전체 목록을 보려면
프로파일러 참조 페이지를 확인하세요.
* 속도는 밀리초 단위로 보고되며, 데이터베이스가 작업을 처리하는 데 걸리는 시간을 나타냅니다. 하지만 네트워크 상태와 여러 가지 다른 요인에 따라 지연 시간의 편차가 매우 클 수도 있습니다.
** 대역폭은 데이터 페이로드를 기반으로 추정한 값으로, 데이타베이스 사용 요금을 계산할 때 적용되는 유효한 측정값은 아닙니다. 여기에 표시되는 값은 실제로 대금이 청구되는 대역폭보다 작거나 클 수 있으며 프로파일러가 전송하는 통계 정보도 대역폭 청구에 고려해야 합니다.