로그 및 측정항목 보기

로깅 및 측정항목은 코드 디버깅 및 모니터링을 위한 중요한 도구입니다. 앱 호스팅은 웹 앱을 지원하는 Google Cloud 서비스인 Cloud Run, Cloud Build, Cloud CDN의 로그와 측정항목을 빠르게 볼 수 있는 액세스를 제공합니다.

Node.js의 console.log와 같은 표준 로깅 구문을 사용하여 Cloud Logging에 로그 항목을 쓸 수 있습니다.

콘솔에서 로그 보기

출시의 Firebase Console 컨텍스트 메뉴 (오른쪽 상단의 점 3개 메뉴)에서 Cloud Run 버전 세부정보 및 오류와 Cloud Build 로그를 빠르게 확인할 수 있습니다.

이 로그에는 앱 호스팅 배포를 디버깅하는 데 유용한 정보가 포함되어 있습니다. 예를 들어 Cloud Run 로그는 package.json를 찾을 수 없을 때 기록합니다.

Cloud Build 로그는 빌드 출력을 표시하므로 프레임워크의 구성과 앱 호스팅 구성 중 오류가 발생했는지 분류할 수 있습니다. 또한 기본 runConfig 설정을 표시하고 설정이 누락되었거나 apphosting.yaml가 존재하지 않는 경우를 나타냅니다.

> next build

   ▲ Next.js 14.1.4
   -   Environments: .env

   ...

Route (app)                              Size     First Load JS
┌ λ /                                    4.79 kB         214 kB
├ λ /_not-found                          882 B          85.3 kB
└ λ /restaurant/[id]                     5.28 kB         207 kB
+   First Load JS shared by all            84.4 kB
  ├ chunks/69-6678c81190a8fe82.js        29 kB
  ├ chunks/fd9d1056-51920e345d2966e8.js  53.4 kB
  └ other shared chunks (total)          1.98 kB

Cloud Logging에 로그 쓰기

커스텀 이벤트를 로깅하려면 서버에서 렌더링한 코드가 실행되는 Cloud Run에서 Cloud Logging에 작성하면 됩니다. console.logconsole.error와 같은 표준 JavaScript 로깅 호출을 사용합니다. 예를 들어 Next.js 경로 핸들러의 코드에서 커스텀 항목을 작성하려면 다음과 같이 하면 됩니다.

  • console.log() 명령어의 로그 수준은 정보입니다.
  • console.info() 명령어의 로그 수준은 정보입니다.
  • console.warn() 명령어의 로그 수준은 오류입니다.
  • console.error() 명령어의 로그 수준은 오류입니다.
  • 내부 시스템 메시지의 로그 수준은 디버그입니다.

console.log는 앱의 서버 렌더링 코드에서 Cloud Logging으로 연결됩니다. 정적 렌더링과 관련된 이벤트는 Cloud Build 로그로 전송되고 서버 렌더링은 Cloud Run 로그로 전송됩니다.

Console에서 측정항목 보기

Firebase Console에서 웹 앱을 지원하는 Cloud Run 서비스의 트래픽 및 사용률 측정항목에 액세스할 수 있습니다.

현재 출시의 Firebase Console 컨텍스트 메뉴 (오른쪽 상단의 점 3개 메뉴)에서 Cloud Run 측정항목 보기를 선택합니다. 앱의 오류율을 파악하기 위한 응답 코드별 분석을 포함하여 Cloud Run 서비스에 도달하는 요청 수를 모니터링할 수 있습니다.

또한 요청 지연 시간과 컨테이너 사용률 측정항목 (예: CPU 사용률 및 메모리 사용률)을 통해 앱의 성능과 확장성을 파악할 수 있습니다.

서버 오류 보기

Cloud Error Reporting은 App 호스팅 Cloud Run 인스턴스의 오류를 통합합니다. 원하는 경우 새로운 오류가 발생하면 이를 알리도록 Cloud Error Reporting을 구성할 수 있습니다.