ログと指標の表示

ロギングと指標は、コードのデバッグとモニタリングに重要なツールです。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.logconsole.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 を構成できます。