Firebase プロジェクトを Cloud Logging にリンクすると、各 Hosting サイトのウェブ リクエストログを表示、検索、フィルタできます。これらのログは Firebase によって自動的に提供される CDN から取得されるため、サイトへのすべてのリクエストと関連するリクエスト データが記録されます。
Cloud Logging ログには次のような機能があります。詳細については、このページの各セクションをご覧ください。
サイトについて理解を深める - サイトへのアクセスの場所と時間、サイトのレスポンス ステータス、エンドユーザー リクエストのレイテンシなどを把握できます。
クエリを使用してログをフィルタする - 自動的に収集されるデータを利用して、各リクエストまたはサイトに関連付けられたデータのフィルタリングとプロットを行います。
ログベースの指標を使用する - 事前定義されたシステム指標またはユーザー定義の指標から Cloud Monitoring のグラフとアラート ポリシーを作成します。
他の Google Cloud ツールにログをエクスポートする - 他のツール(BigQuery やデータポータルなど)でログデータを使用して、より強力な分析や相関付けを行います。
プロジェクトに複数の Hosting サイトがある場合は、どの Hosting サイトでログをエクスポートするかを選択できます。その後、Hosting サイトやドメインでもログデータをフィルタして表示できます。ログをエクスポートする特定の Hosting サイトを選択することで、プロジェクトで処理されるデータの量も制御できます。
Cloud Logging にリンクしてデータ使用量をモニタリングする
Cloud Logging にリンクしてウェブ リクエストログをエクスポートする
Firebase コンソールの Cloud Logging [統合] カードで [リンク] をクリックします。
Cloud Logging をリンクまたはリンク解除するには、プロジェクト オーナー、編集者、Firebase Develop 管理者のいずれかのロールにバンドルされた権限が必要です。
画面上の指示に従って、Cloud Logging にログをエクスポートする Hosting サイトを選択します。
アクティブな Hosting サイトがすでにある場合、リンク ワークフローには、各 Hosting サイトのログの推定データ使用レベルが表示されます。この値は過去 30 日間から推定されます。
Cloud Logging にリンクした後、Hosting サイトへの新しいリクエストのログは、通常はリクエストが行われてから 30 分以内に表示されます。
Cloud Logging から Firebase Hosting のリンクを解除すると、Cloud Logging へのウェブ リクエストログのエクスポートが停止します。
ログのデータ使用量をモニタリングする
Cloud Logging にリンクすると、Hosting サイトでログのデータ使用量レベルを確認できます。
Firebase コンソールの Cloud Logging 統合カードにて
Google Cloud コンソールのログビューア インターフェース(
log_bytes
指標)にて
サイトの理解を深める
Google Cloud コンソールのログビューア インターフェースには、クエリ、組み込みフィルタ、データパネルを使用して、特定のログとデータを表示できるツールがあります。クエリによるログのフィルタリングについて詳しくは、次のセクションをご覧ください。
サイトのトラフィックのアクセス元に関する詳細情報
各リクエストに関する情報(ソース IP、リファラー、都市、ステータスなど)を確認できます。ユーザーがサイトにアクセスしているタイミング
ヒストグラム パネルを使用して、特定の期間ごとの分布を確認できます。これにより、アプリの使用量の通常のピークと低下を分析したり、トラフィックの予期しない急増を明らかにしたりできます。エンドユーザー リクエストのステータスの分布
各リクエストのステータスの確認や、エラーが返されたリクエストの診断もできます。ログは、Critical
、Error
、Warning
でフィルタできます。サイトでリクエストへの応答にかかっている時間
各ログに記録されたlatency
値を使用して、各リクエストのサイトのレイテンシを確認できます。サイトでコンテンツ キャッシュは活用されているか
各ログにはcacheHit
フィールドが含まれ、サイトのリソースが Hosting の CDN キャッシュから迅速に配信されたのか、または Hosting バックエンドへの完全な転送が必要だったかが示されます。これにより、Firebase のグローバル CDN を最大限に活用して、ウェブサイトのパフォーマンスを向上させることができます。たとえば、このデータを使用して、静的アセットや動的コンテンツのキャッシュ保存の傾向を微調整できます。さまざまなドメインへのトラフィックの分布
複数のドメインまたは Hosting サイトがある場合は、ドメインまたはサイトでログをフィルタできます。これにより、トラフィックの分布を確認できます。ドメインでフィルタすると、最もアクセスされているドメインを追跡できます。
クエリでログをフィルタする
クエリを使用してログをフィルタする方法については、ログビューアを使用したサンプルクエリとログクエリの作成をご覧ください。下の表では、これらのクエリで使用できるフィールドについて説明しています。
Hosting の場合、クエリの初期フィルタは次のとおりです。
- リソース(
resource.type
)-firebase_domain
(Firebase Hosting サイトドメイン) - ログ名(
logName
)-webrequests
(Firebase Hosting)
各ログエントリには、事前定義された構造とクエリ可能なフィールドがあります(LogEntry をご覧ください)。Hosting の場合、一部のフィールドは HTTP リクエストの標準ですが、各リクエストで Hosting が実行する処理に由来するその他のフィールド値もあります。
フィールド | 説明 |
---|---|
Firebase Hosting は、次のフィールドをログエントリの httpRequest オブジェクトに保存します。これらのフィールドは HTTP 仕様で定義されています。 |
|
cacheHit |
Hosting CDN にキャッシュ内のレスポンスのリソースがあるかどうか |
latency |
リクエスト時間(秒)。s 接尾辞付き(例: 1.256s )。
|
protocol |
リクエストに使用されるプロトコル(例: HTTP/1.1 、HTTP/2 、websocket )。
|
referer |
現在リクエストしているページへのリンクをたどった前のウェブページのアドレス(存在する場合) |
remoteIp |
リクエストの発信元のクライアント IP |
requestMethod |
リクエスト メソッド(GET 、POST 、PUT など)
|
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 固有のロギング指標も生成されます。これらの指標は、ログエントリに固有のものではなく、特定の Hosting サイト全体に固有のものです。
log_bytes
: 各サイトの合計データ使用量(バイト単位)response_count
: サイトに対して書き込まれたレスポンスの合計数この指標には HTTP ステータスのフィールドが含まれているため、ステータスごとに HTTP レスポンスをプロットできます(例として)。
他の Google Cloud ツールにログをエクスポートする
サイトのログを、Cloud Monitoring や BigQuery などの他の Google Cloud ツールにエクスポートすることもできます。次に例を示します。
Cloud Monitoring を使用すると、グラフやアラート ポリシーで使用できるログベースの指標を作成できます。
BigQuery を使用すると、次のことが可能になります。
- データポータルを使用して、Hosting データのダッシュボードを生成する。
- クエリを実行して、リクエストを詳しく分析する(平均レスポンス サイズ、キャッシュ ヒット数とミス数など)。
- ユーザーが実際にリクエストする URL を確認する。
- BigQuery にエクスポートした他の Firebase データと Hosting データを結合し、新しい方法でクエリする。