Firebase Summit で発表されたすべての情報をご覧ください。Firebase を使用してアプリ開発を加速し、自信を持ってアプリを実行する方法を紹介しています。詳細

Cloud Loggingを使用して、サイトのWebリクエストログを表示、検索、およびフィルタリングします

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

Firebase プロジェクトを Cloud Logging にリンクして、各ホスティング サイトのウェブ リクエスト ログを表示、検索、フィルタリングできます。これらのログは、Firebase によって自動的に提供される CDN からのものであるため、サイトへのすべてのリクエストと関連するリクエスト データがログに記録されます。

ここでは、Cloud Logging のログを使用していくつかのことを行います。詳細については、このページの各セクションにアクセスしてください。

プロジェクトに複数のホスティング サイトがある場合、ログをエクスポートするホスティング サイトを選択できます。その後、ホスティング サイトやドメインごとにログ データをフィルタリングして表示できます。ログをエクスポートする特定のホスティング サイトを選択することで、プロジェクトで処理されるデータの量を制御することもできます。

  1. Firebase コンソールのCloud Logging統合カードで [リンク]をクリックします。

    Cloud Logging をリンクまたはリンク解除するには、プロジェクト オーナー、編集者、またはFirebase 開発管理者のいずれかの役割にバンドルされている権限が必要です。

  2. 画面の指示に従って、Cloud Logging にログをエクスポートするホスティング サイトを選択します。

    アクティブなホスティング サイトが既に 1 つ以上ある場合、リンク ワークフローは、各ホスティング サイトからのログの推定データ使用レベルを表示します。この値は、過去 30 日間から推定されます。

Cloud Logging にリンクした後、ホスティング サイトへの新しいリクエストのログは通常、リクエストが行われてから 30 分以内に表示されます。

Cloud Logging からFirebase Hosting のリンクを解除することもできます。これにより、Cloud Logging へのウェブ リクエスト ログのエクスポートが停止します。

ログのデータ使用量を監視する

Cloud Logging にリンクすると、ホスティング サイトからのログのデータ使用レベルを表示できます。

サイトをよりよく理解する

Google Cloud Console のログ ビューア インターフェースには、クエリ、組み込みのフィルタ、およびデータ パネルを使用して特定のログとデータを表示するためのツールが用意されています。クエリを使用してログをフィルタリングする方法については、次のセクションで詳しく説明します。

  • あなたのサイトのトラフィックはどこから来ているのか?
    ソース IP、リファラー、都市、ステータスなど、各リクエストに関する情報を表示できます。

  • ユーザーがいつあなたのサイトにアクセスしているか?
    ヒストグラム パネルを使用して、特定の時間範囲ごとの分布を確認できます。これにより、アプリの使用量の通常のピークとディップを把握し、予期しないトラフィックの急増を明らかにすることができます。

  • エンドユーザーのリクエストのステータス分布は?
    各リクエストのステータスを表示し、エラーを受け取ったリクエストを診断することもできます. CriticalError 、またはWarningでログをフィルタリングできます。

  • サイトがリクエストに応答するのにどれくらい時間がかかりますか?
    各ログでキャプチャされたlatency値を使用して、各リクエストのサイトのレイテンシを表示できます。

  • あなたのサイトはコンテンツ キャッシュを利用していますか?
    各ログにはcacheHitフィールドが含まれており、サイトのリソースが Hosting の CDN キャッシュから迅速に提供されたかどうか、または Hosting バックエンドに完全に移動する必要があったかどうかを示します。これにより、Firebase のグローバル CDN を最大限に活用して、ウェブサイトのパフォーマンスを向上させることができます。たとえば、データを使用して、静的アセット動的コンテンツのキャッシュ習慣を微調整できます。

  • さまざまなドメインへのトラフィックの分布はどうなっていますか?
    複数のドメインまたはホスティング サイトがある場合は、ドメインまたはサイトごとにログをフィルター処理できます。これにより、トラフィックがどのように分散されているかを確認できます。ドメインでフィルタリングすると、どのドメインが最も頻繁にアクセスされているかを追跡できます。

クエリでログをフィルタリングする

クエリを使用してログをフィルター処理する方法については、ログ ビューアを使用したサンプル クエリログクエリの作成を参照してください。次の表では、これらのクエリで使用できるフィールドについて説明します。

ホスティングの場合、クエリの初期フィルターを次に示します。

  • リソース( resource.type ) — firebase_domain (Firebase ホスティング サイト ドメイン)
  • ログ名( logName ) — webrequests (Firebase Hosting)

各ログ エントリには、事前定義された構造とクエリ可能なフィールドがあります ( LogEntryを参照)。 Hosting の場合、一部のフィールドは HTTP リクエストの標準ですが、Hosting が各リクエストで実行する処理から得られる他のフィールド値があります。

分野説明
Firebase Hosting は、ログエントリのhttpRequestオブジェクトに次のフィールドを保存します。
これらのフィールドは、HTTP 仕様で定義されています。
cacheHitホスティング CDN がキャッシュに応答のリソースを持っていたかどうか
latency接尾辞s付きの秒単位のリクエスト期間 (例: 1.256s )
protocolリクエストに使用されるプロトコル (例: HTTP/1.1HTTP/2websocket )
referer現在要求されているページへのリンクをたどった前の Web ページのアドレス (存在する場合)
remoteIpリクエストの送信元クライアント IP
requestMethodリクエスト メソッド ( GETPOSTPUTなど)
requestSize要求のサイズ (バイト単位)
requestUrlリクエストの完全な URL (例:
https://foo.web.app/barまたはhttps://custom.domain.com?query=param )
responseSize HTTP 応答サイズ (バイト単位)
serverIp未実装
status HTTP 応答ステータス (例: 200または404 )
userAgentリクエストの user-Agent ヘッダー
Firebase Hosting は、ログエントリのjsonPayloadオブジェクトに追加のフィールドを保存します。
acceptEncoding (HTTP リクエストから)クライアントがサポートするコンテンツ エンコーディング (通常は圧縮アルゴリズム) (例: gzipまたはcompress )
billableプロジェクトがリクエストに対して請求されたかどうか
customDomainリクエストがカスタム ドメインに対して行われたかどうか
hostnameリクエストが行われたホスト名
remoteIpCountryリクエストの発信国
remoteIpCityリクエストの発信都市

ログベースの指標を使用する

ログベースの指標を表示して構築し、Cloud Monitoring でこれらの指標を使用してグラフとアラート ポリシーを作成できます。

  • 特定の期間内に発生したロギング イベントの数など、自動的に記録される定義済みのシステム メトリックを活用します。

  • プロジェクトのユーザー定義メトリックを作成します。特定のクエリに一致するログ エントリの数を数えたり、一致するログ エントリで特定の値を追跡したりできます。正規表現を使用してフィルタリングできます。

  • Cloud Monitoringを使用して、特定のメッセージを含むログエントリの数を記録したり、ログエントリで報告されたレイテンシ情報を抽出したりします。その後、これらの指標をグラフやアラート ポリシーで使用できます。

Firebase Hosting は、次の Hosting 固有のログ指標も生成します。これらのメトリックは、ログ エントリに固有のものではなく、特定のホスティング サイト全体に固有のものです。

  • log_bytes : 各サイトのデータ使用量の合計バイト数

  • response_count : サイトに書き込まれた応答の総数

    このメトリクスには HTTP ステータスのフィールドが含まれているため、HTTP レスポンスをステータス別にプロットできます (例として)。

ログを他の Google Cloud ツールにエクスポートする

サイトのログを Cloud Monitoring や BigQuery などの他の Google Cloud ツールにエクスポートすることもできます。次に例を示します。

  • Cloud Monitoringを使用すると、グラフやアラート ポリシーで使用できるログベースの指標を作成できます。

  • BigQueryを使用すると、次のいずれかを実行できます。

    • Data Studio を使用して、ホスティング データのダッシュボードを生成します。
    • クエリを実行して、リクエストに関する詳細な情報を取得します (平均応答サイズ、キャッシュ ヒットとミスなど)。
    • ユーザーが実際に要求する URL を把握します。
    • Hosting データを、BigQuery にエクスポートした他の Firebase データと組み合わせて、新しい方法でクエリを実行します。