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

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

以下列舉 Cloud Logging 記錄的幾項用途。請參閱本頁的各個部分,瞭解詳細資訊。

如果專案中有多個 Hosting 網站,您可以選取要匯出記錄的 Hosting 網站。接著,您可以依據 Hosting 網站甚至網域篩選及查看記錄資料。您可以選取要匯出記錄的特定 Hosting 網站,藉此控制專案處理的資料量。

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

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

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

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

連結至 Cloud Logging 後,系統通常會在您提出要求後 30 分鐘內,顯示您對 Hosting 網站提出的所有要求記錄。

您也可以取消連結 Firebase HostingCloud Logging,這樣就不會將網路要求記錄匯出至 Cloud Logging

監控記錄檔的資料用量

連結至 Cloud Logging 後,您可以查看 Hosting 網站的記錄資料使用量等級:

進一步瞭解您的網站

Google Cloud 主控台中的 Logs Viewer 介面提供工具,可透過查詢和內建篩選器及資料面板查看特定記錄和資料。如要進一步瞭解如何使用查詢篩選記錄,請參閱下一個章節。

  • 網站流量來自哪些精細層級的來源?
    您可以查看每項要求的相關資訊,包括來源 IP、參照網址、城市和狀態。

  • 使用者何時會造訪您的網站?
    您可以使用「直方圖」面板查看特定時間範圍的分布情形。這樣一來,您就能深入瞭解應用程式使用量的正常高峰和低谷,以及任何意外的流量激增情形。

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

  • 網站回應要求需要多長時間?
    您可以使用每個記錄中擷取的 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.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 要求的使用者代理程式標頭
Firebase Hosting 會在記錄項目的 jsonPayload 物件中儲存其他欄位。
acceptEncoding (來自 HTTP 要求) 用戶端支援哪種內容編碼 (通常是壓縮演算法),例如 gzipcompress
billable 您的專案是否已針對這項要求收費
customDomain 要求是否針對自訂網域提出
hostname 要求針對的網域名稱
remoteIpCountry 要求的來源國家/地區
remoteIpCity 要求的來源城市

使用記錄指標

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

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

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

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

Firebase Hosting 也會產生下列 Hosting 專屬記錄指標。這些指標並非特定記錄項目,而是特定 Hosting 網站的整體指標。

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

  • response_count:為網站撰寫的回覆總數

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

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

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

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

  • 您可以使用 BigQuery 執行下列任一操作:

    • 使用數據分析產生 Hosting 資料的資訊主頁。
    • 執行查詢,進一步瞭解要求 (平均回應大小、快取命中與未命中次數等)。
    • 瞭解使用者實際要求的網址。
    • Hosting 資料與您匯出至 BigQuery 的其他 Firebase 資料結合,並以新方式查詢資料。