設置高級計費警報和邏輯

雖然簡單的預算警報電子郵件是接收賬單更新的相對簡單的方法,但有時您可能希望創建包含更多自定義邏輯的更複雜的警報。這裡有兩種方法可以考慮:

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

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

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

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

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

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

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

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

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

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

  • 如果您的某些 Firebase 產品使用的資源量已超過某個閾值

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

使用 Cloud Monitoring

要開始使用 Cloud Monitoring,我們建議您從Metrics Explorer開始,它允許您在 Firebase/Google Cloud 項目中創建自定義指標圖表並可視化它們的使用情況。

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

在您在 Metrics Explorer 中輕鬆可視化您的資源使用情況後,我們建議您針對您最關心的指標創建警報策略。以下是一些示例提醒政策:

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

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

創建額外的計費邏輯

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

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

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

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

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

您可以通過在 Google Cloud Console 中訪問與您的 Firebase 項目關聯的預算(在Billing > Budgets and alerts下)為您的計費數據設置 Pub/Sub 主題,然後點擊將 Pub/Sub 主題連接到此預算的複選框.這將創建一個您可以稍後收聽的 Pub/Sub 主題。有關詳細步驟,請參閱完整文檔

創建 Pub/Sub 計費主題後,您可以編寫一個雲函數來收聽該主題並相應地處理數據。數據以 JSON 數據的形式發送,其中包含有用的信息,例如您迄今為止花費的金額、預算金額以及當前結算週期的開始日期。

Google Cloud 文檔包含有關如何使用 Cloud Function 接收此數據的完整詳細信息。但是,如果您使用 Cloud Functions for Firebase 來部署您的函數,則一般過程會稍微簡單一些(查看Firebase 文檔)。您還可以參考此視頻以獲取該過程的示例演練。

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