Firebase プロジェクトを Cloud Logging にリンクして、各ホスティング サイトのウェブ リクエスト ログを表示、検索、フィルタリングできます。これらのログは、Firebase によって自動的に提供される CDN からのものであるため、サイトへのすべてのリクエストと関連するリクエスト データがログに記録されます。
ここでは、Cloud Logging のログを使用していくつかのことを行います。詳細については、このページの各セクションにアクセスしてください。
サイトの理解を深める — サイトへのアクセスがあった場所と時間、サイトの応答ステータス、エンド ユーザー リクエストの遅延などを把握します。
クエリを使用してログをフィルター処理する— 自動的に収集されたデータを活用して、各要求またはサイトに関連付けられたデータをフィルター処理およびプロットします。
ログベースの指標を使用する- 事前定義されたシステム指標またはユーザー定義の指標から、Cloud Monitoring グラフとアラート ポリシーを作成します。
ログを他の Google Cloud ツールにエクスポートする- 他のツール (BigQuery や Data Studio など) でログ データを使用して、より強力な分析と関連付けを行います。
プロジェクトに複数のホスティング サイトがある場合、ログをエクスポートするホスティング サイトを選択できます。その後、ホスティング サイトやドメインごとにログ データをフィルタリングして表示できます。ログをエクスポートする特定のホスティング サイトを選択することで、プロジェクトで処理されるデータの量を制御することもできます。
Cloud Logging は、1 か月あたり(プロジェクトごと)に最大 50 GB のデータ使用量に対して無料です。この使用法は、Cloud Logging を使用する任意の Google または Firebase プロダクトからのものである可能性があります。プロジェクトを Blaze 料金プランにアップグレードして、追加の有料使用のロックを解除できます。 Cloud Logging の料金について詳しくは、こちらをご覧ください。
Cloud Logging と課金をモニタリングおよび管理できます。
Google Cloud 料金計算ツールを使用して、Cloud Logging の請求額を見積もります。
除外を作成してログを調整します。
コスト管理に役立つアラートを設定します。
特定のリクエストのログ エントリが遅延したり、まれに削除されたりする場合があることに注意してください。ログはリクエストを理解するために使用できますが、プロジェクトの使用状況と請求に表示される実際の使用状況を反映していない場合があります。
Cloud Logging にリンクしてデータ使用量をモニタリングする
Cloud Logging へのリンクとウェブ リクエスト ログのエクスポート
Firebase コンソールのCloud Logging統合カードで [リンク]をクリックします。
Cloud Logging をリンクまたはリンク解除するには、プロジェクト オーナー、編集者、またはFirebase 開発管理者のいずれかの役割にバンドルされている権限が必要です。
画面の指示に従って、Cloud Logging にログをエクスポートするホスティング サイトを選択します。
アクティブなホスティング サイトが既に 1 つ以上ある場合、リンク ワークフローは、各ホスティング サイトからのログの推定データ使用レベルを表示します。この値は、過去 30 日間から推定されます。
Cloud Logging にリンクした後、ホスティング サイトへの新しいリクエストのログは通常、リクエストが行われてから 30 分以内に表示されます。
Cloud Logging からFirebase Hosting のリンクを解除することもできます。これにより、Cloud Logging へのウェブ リクエスト ログのエクスポートが停止します。
ログのデータ使用量を監視する
Cloud Logging にリンクすると、ホスティング サイトからのログのデータ使用レベルを表示できます。
Firebase コンソールのCloud Logging統合カード
Google Cloud Console のログビューア インターフェース(
log_bytes
指標)
Cloud Logging は、1 か月あたり(プロジェクトごと)に最大 50 GB のデータ使用量に対して無料です。この使用法は、Cloud Logging を使用する任意の Google または Firebase プロダクトからのものである可能性があります。プロジェクトを Blaze 料金プランにアップグレードして、追加の有料使用のロックを解除できます。 Cloud Logging の料金について詳しくは、こちらをご覧ください。
Cloud Logging と課金をモニタリングおよび管理できます。
Google Cloud 料金計算ツールを使用して、Cloud Logging の請求額を見積もります。
除外を作成してログを調整します。
コスト管理に役立つアラートを設定します。
特定のリクエストのログ エントリが遅延したり、まれに削除されたりする場合があることに注意してください。ログはリクエストを理解するために使用できますが、プロジェクトの使用状況と請求に表示される実際の使用状況を反映していない場合があります。
サイトをよりよく理解する
Google Cloud Console のログ ビューア インターフェースには、クエリ、組み込みのフィルタ、およびデータ パネルを使用して特定のログとデータを表示するためのツールが用意されています。クエリを使用してログをフィルタリングする方法については、次のセクションで詳しく説明します。
あなたのサイトのトラフィックはどこから来ているのか?
ソース IP、リファラー、都市、ステータスなど、各リクエストに関する情報を表示できます。ユーザーがいつあなたのサイトにアクセスしているか?
ヒストグラム パネルを使用して、特定の時間範囲ごとの分布を確認できます。これにより、アプリの使用量の通常のピークとディップを把握し、予期しないトラフィックの急増を明らかにすることができます。エンドユーザーのリクエストのステータス分布は?
各リクエストのステータスを表示し、エラーを受け取ったリクエストを診断することもできます.Critical
、Error
、または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.1 、 HTTP/2 、 websocket ) |
referer | 現在要求されているページへのリンクをたどった前の Web ページのアドレス (存在する場合) |
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 固有のログ指標も生成します。これらのメトリックは、ログ エントリに固有のものではなく、特定のホスティング サイト全体に固有のものです。
log_bytes
: 各サイトのデータ使用量の合計バイト数response_count
: サイトに書き込まれた応答の総数このメトリクスには HTTP ステータスのフィールドが含まれているため、HTTP レスポンスをステータス別にプロットできます (例として)。
ログを他の Google Cloud ツールにエクスポートする
サイトのログを Cloud Monitoring や BigQuery などの他の Google Cloud ツールにエクスポートすることもできます。次に例を示します。
Cloud Monitoringを使用すると、グラフやアラート ポリシーで使用できるログベースの指標を作成できます。
BigQueryを使用すると、次のいずれかを実行できます。
- Data Studio を使用して、ホスティング データのダッシュボードを生成します。
- クエリを実行して、リクエストに関する詳細な情報を取得します (平均応答サイズ、キャッシュ ヒットとミスなど)。
- ユーザーが実際に要求する URL を把握します。
- Hosting データを、BigQuery にエクスポートした他の Firebase データと組み合わせて、新しい方法でクエリを実行します。