ログと指標の表示

ロギングと指標は、コードのデバッグとモニタリングに重要なツールです。App Hosting を使用すると、ウェブアプリを支える Google Cloud サービス(Cloud RunCloud 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.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 を構成できます。