ロギングと指標は、コードのデバッグとモニタリングに重要なツールです。App Hosting を使用すると、ウェブアプリを支える Google Cloud サービス(Cloud Run、Cloud Build、Cloud CDN)のログと指標をすばやく確認できます。
Node.js の console.log
などの標準ロギング構文を使用して、ログエントリを Cloud Logging に書き込むことができます。
コンソールでログを表示する
ロールアウトの Firebase コンソール コンテキスト メニュー(右上のその他メニュー)から、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()
コマンドのログレベルは INFO です。console.info()
コマンドのログレベルは INFO です。console.warn()
コマンドのログレベルは ERROR です。console.error()
コマンドのログレベルは ERROR です。- 内部システム メッセージのログレベルは DEBUG です。
console.log
は、アプリのサーバー レンダリング コードで Cloud Logging にパイプされます。静的レンダリングに関連するイベントは Cloud Build ログに送信され、サーバー レンダリングは Cloud Run ログに送信されます。
コンソールで指標を表示する
Firebase コンソールから、ウェブアプリを動かしている Cloud Run サービスのトラフィックと使用率の指標にアクセスできます。
現在のロールアウトの Firebase コンソール コンテキスト メニュー(右上のその他メニュー)から、[Cloud Run 指標を表示] を選択します。Cloud Run サービスに到達したリクエストの数(レスポンス コード別の内訳を含む)をモニタリングして、アプリのエラー率を把握できます。
また、リクエスト レイテンシとコンテナ使用率の指標(CPU 使用率やメモリ使用率など)も確認でき、アプリのパフォーマンスとスケーラビリティを把握できます。
サーバーエラーを確認する
Cloud Error Reporting は、App Hosting Cloud Run インスタンスのエラーを統合します。必要に応じて、新しいエラーが発生したときに通知するように Cloud Error Reporting を構成できます。