運用 Cloud Logging 查看、搜尋及篩選網站要求記錄檔

您可以將 Firebase 專案連結至 Cloud Logging,藉此查看、搜尋及篩選各個託管網站的網路要求記錄檔。這些記錄來自 Firebase 自動提供的 CDN,因此系統會記錄傳送至您網站的每個要求和相關聯的要求資料。

以下是 Cloud Logging 記錄檔的用途。詳情請參閱本頁各節的說明。

如果您的專案中有多個託管網站,則可以選取要匯出記錄的託管網站。然後可依託管網站,甚至是依網域篩選和查看記錄檔資料。透過選取要匯出記錄的特定託管網站,您也可以控管為專案處理的資料量。

  1. 在 Firebase 控制台的 Cloud Logging 整合資訊卡中,按一下「Link」

    如要連結或取消連結 Cloud Logging,您需要具備下列任一角色的權限:專案擁有者或編輯者Firebase 開發管理員

  2. 按照畫面上的指示,選取要將記錄檔匯出至 Cloud Logging 的託管網站。

    如果您擁有一或多個有效的託管網站,連結工作流程會顯示每個託管網站的記錄檔預估資料用量等級。這個值是根據過去 30 天的資料估算而得。

連結到 Cloud Logging 後,向託管網站發出的任何「新」要求的記錄檔,通常會在提出要求後的 30 分鐘內顯示。

您也可以從 Cloud Logging 取消連結 Firebase 託管,讓系統停止將網路要求記錄檔匯出至 Cloud Logging。

監控資料用量記錄

連結至 Cloud Logging 之後,您可以從託管網站查看記錄檔的數據用量等級:

進一步瞭解您的網站

Google Cloud 控制台的記錄檢視器介面提供工具,會使用查詢、內建篩選器和資料面板來查看特定記錄檔和資料。如要進一步瞭解如何使用查詢來篩選記錄檔,下一節會下一節。

  • 網站流量的詳細來源為何?
    您可以查看每個要求的相關資訊,包括來源 IP、參照網址、城市和狀態。

  • 使用者會在哪些情況下造訪您的網站?
    您可以使用直方圖面板,依特定時間範圍查看分佈情形。如此一來,您就能深入瞭解應用程式用量的正常高峰和低點,並揭露任何非預期的流量高峰。

  • 使用者要求的狀態分佈情形為何?
    您可以查看每項要求的狀態,甚至診斷收到錯誤的要求。你可以依 CriticalErrorWarning 篩選記錄。

  • 網站需要多久時間才會回應要求?
    您可以使用各項記錄擷取的 latency 值,查看網站的每項要求延遲時間。

  • 網站是否使用內容快取功能?
    每筆記錄都包含一個 cacheHit 欄位,讓您瞭解網站的資源是快速從託管的 CDN 快取提供,還是必須完全前往託管後端。充分運用 Firebase 的全球 CDN,協助提升網站效能。例如,您可以使用這些資料微調靜態資產動態內容的快取習慣。

  • 各個網域的流量分佈情形為何?
    如果您有多個網域或託管網站,可以依網域或網站篩選記錄。讓您瞭解流量的分配方式。依網域篩選時,您可以追蹤最常造訪的網域。

使用查詢篩選記錄檔

如要瞭解如何使用查詢篩選記錄檔,請參閱使用記錄檢視器的查詢範例建構記錄查詢。下表說明這些查詢的可用欄位。

在「託管」方面,以下是查詢的一些初始篩選條件:

  • 資源 (resource.type) — firebase_domain (Firebase 託管網站網域)
  • 記錄名稱 (logName) - webrequests (Firebase 代管)

每個記錄項目都有預先定義的結構和可查詢的欄位 (請參閱 LogEntry)。對託管而言,部分欄位為 HTTP 要求的標準欄位,但主機對每個要求執行的處理也會來自其他欄位值。

欄位 說明
Firebase 託管會將下列欄位儲存在記錄項目的 httpRequest 物件中。
這些欄位是以 HTTP 規格定義。
cacheHit 託管 CDN 是否具備快取中的回應資源
latency 要求時間長度 (以秒為單位),帶有 s 後置字串 (例如 1.256s)
protocol 要求的通訊協定 (例如 HTTP/1.1HTTP/2websocket)
referer 採用目前要求網頁連結的前一個網頁位址 (如有)
remoteIp 要求的來源用戶端 IP
requestMethod 要求方法 (GETPOSTPUT 等)
requestSize 要求大小 (以位元組為單位)
requestUrl 要求的完整網址 (例如:
https://foo.web.app/barhttps://custom.domain.com?query=param)
responseSize HTTP 回應大小 (以位元組為單位)
serverIp 未填入任何值
status HTTP 回應狀態 (例如 200404)
userAgent 要求的 user-Agent 標頭
Firebase 託管會將其他欄位儲存在記錄項目的 jsonPayload 物件中。
acceptEncoding (來自 HTTP 要求) 用戶端支援的內容編碼,通常是壓縮演算法 (例如 gzipcompress)
billable 代表專案是否因要求而產生費用
customDomain 要求是否針對自訂網域提出
hostname 提出要求時使用的主機名稱
remoteIpCountry 要求的來源國家/地區
remoteIpCity 要求的來源城市

使用記錄指標

您可以查看及建構記錄指標,然後在 Cloud Monitoring 中使用這些指標來建立圖表和快訊政策。

  • 利用系統自動記錄的預先定義的系統指標,例如在特定時間範圍內發生的記錄事件數量。

  • 為您的專案建立使用者定義指標。您可以計算符合特定查詢的記錄項目數,或利用相符的記錄項目追蹤特定值。您可以使用規則運算式進行篩選。

  • 使用 Cloud Monitoring 記錄包含特定訊息的記錄項目數量,或擷取記錄項目中回報的延遲資訊。然後,您可以在圖表與快訊政策中使用這些指標。

Firebase 託管也會產生下列託管專用的記錄指標。這些指標不會侷限於記錄項目,而會反映整個代管網站。

  • log_bytes:每個網站的資料總用量 (位元組)

  • response_count:網站的回應總數

    這項指標包含 HTTP 狀態的欄位,因此您可以依照狀態繪製 HTTP 回應 (例如)。

將記錄檔匯出至其他 Google Cloud 工具

您也可以將網站記錄檔匯出至其他 Google Cloud 工具,例如 Cloud Monitoring 或 BigQuery,例如:

  • 您可以使用 Cloud Monitoring 建立記錄指標,將指標用於圖表和快訊政策。

  • 您可以透過 BigQuery 執行下列任一操作:

    • 使用數據分析產生託管資料的資訊主頁。
    • 執行查詢以深入瞭解要求 (平均回應大小、快取命中和失敗等)。
    • 瞭解您的使用者實際要求哪些網址。
    • 將託管資料與匯出至 BigQuery 的其他 Firebase 資料合併,並用新的方式查詢資料。