ロギングと指標は、コードのデバッグとモニタリングに重要なツールです。App Hosting を使用すると、ウェブアプリを強化する Google Cloud サービス(Cloud Run、Cloud Build、Cloud CDN)のログと指標をすばやく表示できます。
Node.js の console.log
などの標準のロギング構文を使用して、Cloud Logging にログエントリを書き込むことができます。
コンソールでログを表示する
ロールアウトの Firebase コンソールのコンテキスト メニュー(右上のその他メニュー)から、Cloud Run のリビジョンの詳細とエラー、Cloud Build のログをすばやく表示できます。
これらのログには、App Hosting のデプロイのデバッグに役立つ情報が含まれています。たとえば、Cloud Run のログには、package.json
が見つからなかった場合に記録されます。
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 を構成できます。