Firebase is back at Google I/O on May 10! Register now

使用 Cloud Logging 查看、搜索和過濾您網站的網絡請求日誌

透過集合功能整理內容 你可以依據偏好儲存及分類內容。

您可以將您的 Firebase 項目鏈接到 Cloud Logging,以查看、搜索和過濾每個託管站點的 Web 請求日誌。這些日誌來自 Firebase 自動提供的 CDN,因此對您站點的每個請求和相關請求數據都會被記錄下來。

以下是您使用 Cloud Logging 日誌執行的一些操作。訪問此頁面的每個部分以了解詳細信息。

如果您的項目中有多個託管站點,您可以選擇要導出日誌的託管站點。然後,您可以按託管站點甚至域過濾和查看日誌數據。通過選擇特定的託管站點來導出日誌,您還可以控制為您的項目處理的數據量。

  1. 單擊 Firebase 控制台中Cloud Logging集成卡中的鏈接

    要鏈接或取消鏈接 Cloud Logging,您需要綁定到以下任何角色的權限: project Owner 或 EditorFirebase Develop Admin

  2. 按照屏幕上的說明選擇您的哪些託管站點應將日誌導出到 Cloud Logging。

    如果您已經有一個或多個活動的託管站點,鏈接工作流會顯示每個託管站點的日誌的估計數據使用水平。該值是根據過去 30 天估算的。

鏈接到 Cloud Logging 後,對您的託管站點的任何請求的日誌通常會在發出請求後的 30 分鐘內顯示。

您還可以取消 Firebase 託管與 Cloud Logging 的關聯,這會停止將 Web 請求日誌導出到 Cloud Logging。

監控日誌的數據使用情況

鏈接到 Cloud Logging 後,您可以查看託管站點日誌的數據使用級別:

更好地了解您的網站

Google Cloud Console 中的日誌查看器界面提供了使用查詢和內置過濾器和數據面板查看特定日誌和數據的工具。在下面的下一節中了解有關使用查詢過濾日誌的更多信息。

  • 您網站的流量具體來自哪裡?
    您可以查看有關每個請求的信息,包括源 IP、referer、城市和狀態。

  • 用戶何時訪問您的網站?
    您可以使用直方圖面板查看特定時間範圍內的分佈情況。這可以讓您深入了解應用程序使用的正常高峰和低谷,並揭示任何意外的流量高峰。

  • 最終用戶請求的狀態分佈是什麼?
    您可以查看每個請求的狀態,甚至可以診斷收到錯誤的請求。您可以按CriticalErrorWarning過濾日誌。

  • 您的網站需要多長時間來響應請求?
    您可以使用每個日誌中捕獲的latency值來查看每個請求的站點延遲。

  • 您的站點是否利用了內容緩存?
    每個日誌都包含一個cacheHit字段,告訴您您的站點資源是否從 Hosting 的 CDN 緩存中快速提供,或者它是否必須完成到 Hosting 後端的完整行程。這可以幫助您充分利用 Firebase 的全球 CDN 來提高網站的性能。例如,您可以使用數據來微調靜態資產動態內容的緩存習慣。

  • 您各個域的流量分佈情況如何?
    如果您有多個域或託管站點,則可以按域或站點過濾日誌。這使您可以查看流量​​的分佈情況。按域過濾時,您可以跟踪訪問最頻繁的域。

使用查詢過濾日誌

要了解如何使用查詢過濾日誌,請訪問使用日誌查看器查詢示例構建日誌查詢。下表描述了可用於這些查詢的字段。

對於託管,這裡有一些查詢的初始過濾器:

  • 資源( resource.type ) — firebase_domain (Firebase 託管站點域)
  • 日誌名稱( logName ) — webrequests (Firebase Hosting)

每個日誌條目都有一個預定義的結構和可查詢的字段(請參閱LogEntry )。對於 Hosting,某些字段是 HTTP 請求的標準字段,但還有其他字段值來自 Hosting 對每個請求運行的處理。

場地描述
Firebase 託管將以下字段存儲在日誌條目的httpRequest對像中。
這些字段在 HTTP 規範中定義。
cacheHit Hosting CDN 是否在緩存中有響應資源
latency請求持續時間,以秒為單位,後綴為s (例如1.256s
protocol用於請求的協議(例如, HTTP/1.1HTTP/2websocket
referer指向當前請求頁面的鏈接的前一個網頁的地址(如果存在)
remoteIp請求的原始客戶端 IP
requestMethod請求方法( GETPOSTPUT等)
requestSize請求的大小(以字節為單位)
requestUrl請求的完整 URL(例如,
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 ,您可以執行以下任一操作:

    • 使用 Data Studio 生成託管數據的儀表板。
    • 運行查詢以更深入地了解您的請求(平均響應大小、緩存命中與未命中等)。
    • 了解您的用戶實際請求的 URL。
    • 將您的託管數據與您導出到 BigQuery 的其他 Firebase 數據相結合,並以新的方式進行查詢。