로깅과 측정항목은 코드 디버깅 및 모니터링을 하는 데 중요한 수단입니다. App Hosting는 웹 앱을 지원하는 Google Cloud 서비스(Cloud Run, Cloud Build, Cloud CDN)의 로그와 측정항목을 볼 수 있는 빠른 액세스를 제공합니다.
Node.js의 console.log
와 같은 표준 로깅 문법을 사용하여 Cloud Logging에 로그 항목을 쓸 수 있습니다.
콘솔에서 로그 보기
출시의 Firebase 콘솔 컨텍스트 메뉴 (오른쪽 상단의 점 3개 메뉴)에서 Cloud Run 버전 세부정보 및 오류와 Cloud Build 로그를 빠르게 확인할 수 있습니다.
이 로그에는 App Hosting 배포를 디버깅하는 데 유용한 정보가 포함되어 있습니다. 예를 들어 package.json
를 찾을 수 없는 경우 Cloud Run 로그에 메모가 기록됩니다.
Cloud Build 로그에는 빌드 출력이 표시되므로 프레임워크 구성에서 오류가 발생했는지 아니면 App Hosting 구성에서 오류가 발생했는지 분류할 수 있습니다. 또한 기본 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.log
및 console.error
와 같은 표준 JavaScript 로깅 호출을 사용합니다. 예를 들어 Next.js 경로 핸들러의 코드에서 맞춤 항목을 작성하려면 다음과 같이 하면 됩니다.
console.log()
명령어의 로그 수준은 정보입니다.console.info()
명령어의 로그 수준은 정보입니다.console.warn()
명령어의 로그 수준은 오류입니다.console.error()
명령어의 로그 수준은 오류입니다.- 내부 시스템 메시지의 로그 수준은 디버그입니다.
console.log
는 앱의 서버 렌더링 코드에서 Cloud Logging로 전달됩니다. 정적 렌더링과 관련된 이벤트는 Cloud Build 로그로 전송되고 서버 렌더링은 Cloud Run 로그로 전송됩니다.
콘솔에서 측정항목 보기
Firebase 콘솔에서 웹 앱을 지원하는 Cloud Run 서비스의 트래픽 및 사용량 측정항목에 액세스할 수 있습니다.
현재 출시의 Firebase 콘솔 컨텍스트 메뉴 (오른쪽 상단의 점 3개 메뉴)에서 Cloud Run 측정항목 보기를 선택합니다. 응답 코드별 분류를 포함하여 Cloud Run 서비스에 도달하는 요청 수를 모니터링하여 앱의 오류율을 파악할 수 있습니다.
또한 요청 지연 시간 및 컨테이너 사용률 측정항목 (예: CPU 사용률 및 메모리 사용률)을 확인하여 앱의 성능과 확장성을 파악할 수 있습니다.
서버 오류 보기
Cloud Error Reporting은 App Hosting Cloud Run 인스턴스의 오류를 통합합니다. 원하는 경우 새로운 오류가 발생하면 알림을 받도록 Cloud Error Reporting을 구성할 수 있습니다.