Catch up on everthing we announced at this year's Firebase Summit. Learn more

設置高級計費警報和邏輯

雖然簡單的預算警告電子郵件是一個相對簡單的方法來獲得計費更新,有時可能當你想創建更複雜的提醒,包括更多的定制邏輯。這裡有兩種方法可以考慮:

  • 使用 Cloud Monitoring 創建更複雜、更及時的警報

  • 使用結算 Pub/Sub 通知以及相應的 Cloud Functions 來創建自定義行為以響應您的支出變化

雖然這兩種技術都需要您做更多的工作,但它們使您能夠準確控制您收到的警報類型以及如何響應它們。

本頁概述了這些方法中的每一種。

使用 Cloud Monitoring 創建更複雜的警報

簡單的預算提醒電子郵件會在您的總體賬單達到特定閾值時通知您。但是,您可能還想知道個別服務是否在意外增加 - 在它們有機會顯著影響您的預算之前。對於此類更複雜的用例,我們建議您了解 Cloud Monitoring,這是一款適用於您的 Firebase 項目的 Google Cloud 工具。

Cloud Monitoring 可用於多種不同類型的警報:

  • 如果您的項目所依賴的資源不可用(對於 Firebase 和 GCP 服務,甚至對於外部服務,如 AWS)

  • 如果 Cloud Functions 等服務的響應時間比預期的要長

  • 如果您的 Cloud Storage 存儲分區、實時數據庫實例或 Cloud Firestore 實例拒絕過多請求(表明您的 Firebase 安全規則可能不正確)。

  • 如果您的某些 Firebase 產品使用的資源量增加到超過特定閾值

通過 Cloud Monitoring 創建的警報通常比簡單的預算警報電子郵件發送得更快,後者通常每天發送一次。警報可以採用 SMS 消息、Slack 頻道消息、PagerDuty 通知、Webhook 等形式。這些選項使您能夠以更高和更可操作的可見性級別發送警報。

使用雲監控

要開始使用雲監控,我們建議首先是指標瀏覽器,它允許您將火力地堡/谷歌雲項目中創建自定義的圖形指標和可視化的使用。

具體來說,您可以查看 Cloud Firestore、實時數據庫或 Cloud Function 實例等資源。您可以查看有關這些產品的使用信息(例如文檔讀取次數、發送的字節數或函數調用),這些信息會對您的計費產生影響。

如果您熟悉可視化的指標瀏覽器的資源使用情況,我們建議您建立提醒政策上您最關心的指標。以下是一些示例警報策略:

  • 如果 30 分鐘時間段內的文檔讀取次數大於特定值

  • 如果特定資源的使用(如函數調用)在特定時間範圍內似乎增長得太快

創建額外的計費邏輯

當您的預算達到特定閾值時,預算警報會自動發送電子郵件,但對於更複雜的警報或對支出增加的程序化反應,您可以考慮基於 Google Cloud Pub/Sub 消息設置其他自定義邏輯。

例如,您可以向 Slack 頻道或通過短信發送警報,或者根據支出水平對應用或項目進行程序化更改。

Pub/Sub 是一種消息傳遞服務,它允許其他服務通過稱為 Pub/Sub 主題的通道以異步方式發送消息(通常以 JSON 數據的形式)。您可以設置授權服務(如 Cloud Functions)來偵聽這些主題中的消息並對數據採取適當的行動。

請注意,無論您的計費使用情況是否發生變化,用於計費的 Pub/Sub 通知大約每 20 分鐘發送一次,並且它們是無狀態的(意味著它們不提供之前發生的情況的上下文)。如果您想跟踪支出隨時間的異常增長,或將支出與上一個週期進行比較,則需要使用 Cloud Firestore 或實時數據庫等數據庫自行管理該歷史數據。

將 Pub/Sub 主題與 Cloud Functions 結合使用

您可以通過訪問與在谷歌雲端控制台的火力地堡項目(下結算>預算和警報)相關的預算,然後點擊複選框連接的Pub / Sub主題,這個預算為您的結算數據的發布/訂閱主題.這將創建一個您可以稍後收聽的 Pub/Sub 主題。有關詳細步驟,請參閱完整的文檔

創建 Pub/Sub 計費主題後,您可以編寫一個 Cloud Functions 函數來偵聽此主題並相應地對數據採取行動。數據以 JSON 數據的形式發送,包括有用的信息,例如您目前已花費的金額、預算金額和當前計費周期的開始日期。

Google Cloud 文檔提供了有關如何使用 Cloud Functions 接收此數據的完整詳細信息。但是,如果你使用雲功能的火力地堡來部署功能,一般的過程是稍微簡單一些(檢查出的火力地堡的文檔)。您也可以參考這個視頻的過程中的一個樣本演練。

收到此數據後,您可以通過多種不同的方式對其進行響應。以下是一些選項: