로깅과 측정항목은 코드 디버깅 및 모니터링을 하는 데 중요한 수단입니다. App Hosting를 사용하면 웹 앱을 지원하는 Google Cloud 서비스(Cloud Run, Cloud Build, Cloud CDN)의 로그와 측정항목을 빠르게 확인할 수 있습니다.
Node.js의 console.log와 같은 표준 로깅 구문을 사용하여 Cloud Logging에 로그 항목을 작성할 수 있습니다.
콘솔에서 사용량 보기
각 백엔드에는 지난 7일 동안의 앱 트래픽(요청 수) 및 오류율 요약이 포함된 개요 탭이 있습니다.
백엔드의 로그 탭에서는 '빌드 로그'(Cloud Build에서)와 '런타임 로그' (Cloud Run 및 Cloud CDN에서)를 보고 필터링할 수 있습니다.
각 백엔드에는 앱의 활동 및 사용량에 관한 여러 사용량 그래프가 있는 사용량 탭도 있습니다. 표시되는 데이터에는 CDN 대역폭 및 요청, Cloud Run CPU 및 메모리 사용량 등이 포함됩니다.
Google Cloud 콘솔에서 Cloud Run의 추가 사용률 측정항목 (예: CPU 사용률 및 메모리 사용률)을 확인할 수 있습니다.
콘솔에서 로그 보기
출시의 Firebase 콘솔 컨텍스트 메뉴 (오른쪽 상단의 점 3개 메뉴)에서 Cloud Run 버전 세부정보와 오류, 빌드 로그를 빠르게 볼 수 있습니다.
이 로그에는 App Hosting 배포를 디버깅하는 데 유용한 정보가 포함되어 있습니다. 예를 들어 Cloud Run 로그는 package.json을 찾을 수 없는 경우를 기록합니다.
빌드 로그에는 빌드 출력이 표시되므로 프레임워크의 구성에 오류가 발생했는지 아니면 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 경로 핸들러의 코드에서 맞춤 항목을 작성하려면 다음과 같이 하면 됩니다.
export async function GET(request) {
console.log("Handling GET request");
return Response.json({ message: "Hello, world!" });
}
console.log()명령어의 로그 수준은 정보입니다.console.info()명령어의 로그 수준은 정보입니다.console.warn()명령어의 로그 수준은 오류입니다.console.error()명령어의 로그 수준은 오류입니다.- 내부 시스템 메시지의 로그 수준은 디버그입니다.
console.log는 앱의 서버 측 렌더링 코드에서 Cloud Logging로 파이프됩니다. 정적 렌더링과 관련된 이벤트는 Cloud Build 로그로 전송되고 서버 측 렌더링은 Cloud Run 로그로 전송됩니다.
서버 오류 보기
Cloud Error Reporting은 App Hosting Cloud Run 인스턴스의 오류를 통합합니다. 원하는 경우 새 오류가 발생하면 알림을 보내도록 Cloud Error Reporting을 구성할 수 있습니다.