最佳化及監控 Google Cloud Observability 費用

本頁面說明如何最佳化及監控 Google Cloud Observability 費用。如要瞭解定價資訊,請參閱「Google Cloud Observability 定價」一文。

您可能也會對下列文件感興趣:

最佳化

本節提供相關指引,說明如何減少或調整 Cloud Logging、Cloud Trace 和 Google Cloud Managed Service for Prometheus 的相關費用。

降低 Cloud Logging 費用

如要降低 Cloud Logging 儲存費用,請在記錄接收器上設定排除篩選器,防止低價值記錄項目串流至記錄值區。您可以設定記錄接收器,排除所有符合排除篩選器的記錄項目,或只排除某個百分比的相符記錄項目。已排除的記錄項目不會串流至記錄儲存空間,也不會計入儲存空間配額。詳情請參閱「記錄接收器篩選器」。

Cloud Logging 儲存費用僅適用於儲存在記錄檔值區中的記錄檔資料。您可以設定記錄接收器,讓系統將記錄資料轉送至下列目的地,而不是儲存在記錄 bucket 中:

將記錄項目轉送至所列目的地時,Cloud Logging 不會收取費用。 不過,當目的地收到記錄項目時,系統可能會向您收費。

如要瞭解如何轉送記錄資料,請參閱「轉送記錄檔至支援的目的地」。

最佳化 Managed Service for Prometheus 的成本

Managed Service for Prometheus 的計價方式可控管費用。由於系統會根據樣本數計費,因此您可以透過下列方式控管費用:

  • 取樣期間:將指標抓取期間從 15 秒變更為 60 秒,即可省下 75% 的成本,而不會犧牲基數。您可以根據每個工作、每個目標或全域來設定取樣期間。

  • 篩選:您可以使用篩選器來減少傳送至服務全域資料儲存空間的樣本數量;詳情請參閱「篩選匯出的指標」。在 Prometheus 抓取設定中,使用指標重新標籤設定,依據標籤比對器在擷取時捨棄指標。

  • 將高基數和低價值資料存放在本機。您可以使用相同的抓取設定執行標準 Prometheus 和代管服務,並將不須傳送到服務全域資料儲存空間的資料保留在本機。

Managed Service for Prometheus 的價格是可預測的。

  • 您無須為資料稀疏的直方圖支付費用。只有第一個非零值,以及值區n值大於值區n-1值時,系統才會計算樣本。舉例來說,有 10 10 13 14 14 14 這個值的直方圖在第 1、3 和 4 個值區計為 3 個樣本。

    視您使用的直方圖數量和用途而定,與直方圖值區指示的絕對值相比,如果計費時排除不變值區,通常會導致用於計費的樣本減少 20% 至 40%。

  • 如果以每個樣本來計費,系統不會針對快速調度和未調度、先占或臨時容器 (例如 HPA 或 GKE Autopilot 建立的容器) 向您收費。

    如果 Managed Service for Prometheus 是按指標計費,則您每次啟動新容器時,都必須一次支付整月的基數費用。如為按取樣計費,您只須在容器執行期間付費。

查詢,包括快訊查詢

使用者發出的所有查詢 (包括執行 Prometheus 記錄規則時發出的查詢),都會透過 Cloud Monitoring API 呼叫計費。

減少追蹤記錄用量

如要控管 Trace 時距的擷取數量,您可以透過管理追蹤記錄取樣率的方式,在效能分析所需的追蹤記錄量與支出的費用之間取得平衡。

針對流量偏高的系統,大部分的客戶僅須採用每 1,000 筆交易取 1 的取樣率 (甚至是每 10,000 筆交易取 1),就能取得足夠的資訊來進行效能分析。

您可以使用 Cloud Trace 用戶端程式庫來設定取樣率。

減少快訊費用

本節說明如何運用策略來降低快訊費用。

合併快訊政策,以便對更多資源執行作業

警告功能會依條件收費。因此,請盡可能使用一項快訊政策監控多項資源,而非為每項資源建立一項快訊政策。

舉例來說,假設您有 100 個 VM。每個 VM 都會為指標類型 my_metric 產生時間序列。以下提供兩種監控時間序列的方式:

  • 您建立一項快訊政策,其中包含一個條件。這項條件會監控 my_metric及匯總 VM 層級的資料。匯總後,每個 VM 都會有一個時間序列。因此,這項條件會監控 100 個時間序列。

  • 您建立了 100 項快訊政策,每項政策都包含 1 個條件。每個條件都會監控其中一個 VM 的 my_metric 時間序列,並將資料匯總至 VM 層級。因此,每個條件都會監控一個時間序列。

第二個選項會建立 100 個條件,因此費用會比只建立 1 個條件的第一個選項高。這兩個選項都會監控 100 個時間序列。

匯總至您需要發出快訊的層級

快訊政策監控的每個時間序列都會產生費用。 與匯總至較低精細程度相比,匯總至較高精細程度的成本較高。舉例來說,匯總至 Google Cloud 專案層級的費用,會比匯總至叢集層級的費用低;匯總至叢集層級的費用,則會比匯總至叢集和命名空間層級的費用低。

舉例來說,假設您有 100 個 VM。每個 VM 都會為指標類型 my_metric 產生時間序列。每個 VM 都屬於五項服務之一。您決定建立一項快訊政策,其中包含一項監控 my_metric 的條件。以下提供兩種不同的匯總選項:

  • 將資料匯總至服務。匯總後,每項服務都會有一個時間序列。因此,這項條件會監控 5 個時間序列。

  • 您會將資料匯總至 VM 層級。匯總後,每個 VM 都會有一個時間序列。因此,這項條件會監控 100 個時間序列。

第二個選項監控 100 個時間序列,因此比第一個選項 (只監控五個時間序列) 貴。

設定快訊政策時,請選擇最適合用途的匯總層級。舉例來說,如果您想針對 CPU 使用率發出快訊,可能需要匯總 VM 和 CPU 層級的資料。如果您想根據服務的延遲時間發出快訊,可以匯總至服務層級。

不要根據未經匯總的原始資料發送快訊

監控系統採用多維度指標,任何指標的總基數都等於受監控的資源數量,乘以該指標的標籤組合數量。舉例來說,如果您有 100 個 VM 發出指標,而該指標有 10 個標籤,每個標籤有 10 個值,則總基數為 100 * 10 * 10 = 10,000。

由於基數會隨規模擴大,對原始資料發出快訊的成本可能極高。在上一個範例中,每個執行期間會傳回 10,000 個時間序列。不過,如果匯總至 VM,則無論基礎資料的標籤基數為何,每個執行期間只會傳回 100 個時間序列。

如果對原始資料設定快訊,當指標收到新標籤時,時間序列可能會增加,進而導致費用增加。在上述範例中,如果使用者為指標新增標籤,總基數就會增加至 100 * 11 * 10 = 11,000 個時間序列。在這種情況下,即使警報政策沒有變更,每個執行週期傳回的時間序列數量仍會增加 1,000 個。如果改為匯總至 VM,即使基礎基數增加,系統仍只會傳回 100 個時間序列。

篩除不必要的回應

設定條件,只評估警報需求所需的資料。如果不想採取行動修正問題,請將該項目從警告政策中排除。舉例來說,您可能不需要針對實習生的開發 VM 發出快訊。

如要減少不必要的事件和費用,可以篩除不重要的時間序列。您可以使用 Google Cloud 中繼資料標籤為資產加上類別標記,然後篩除不需要的中繼資料類別。

使用頂端串流運算子減少傳回的時間序列數量

如果條件使用 PromQL 查詢,則可使用 top-streams 運算子選取傳回最高值的時間序列數量:

舉例來說,PromQL 查詢中的 topk(metric, 5) 子句會將每個執行期間傳回的時間序列數量限制為五個。

如果將時間序列數量限制在一定範圍內,可能會導致資料遺失和事件錯誤,例如:

  • 如果超過 N 個時間序列違反門檻,您就會錯過前 N 個時間序列以外的資料。
  • 如果違規時間序列發生在排名前 N 的時間序列之外,即使排除的時間序列仍違反門檻,事件也可能會自動關閉。
  • 條件查詢可能不會顯示重要背景資訊,例如運作正常的基準時間序列。

為降低這類風險,請為 N 選擇較大的值,並僅在評估多個時間序列的警報政策中使用 top-streams 運算子,例如個別 Kubernetes 容器的事件。

延長執行時間長度 (僅限 PromQL)

如果條件使用 PromQL 查詢,您可以透過在條件中設定 evaluationInterval 欄位,修改執行期間的長度。

評估間隔越長,每月傳回的時間序列就越少;舉例來說,間隔 15 秒的條件查詢執行頻率是間隔 30 秒查詢的兩倍,間隔 1 分鐘的查詢執行頻率則是間隔 30 秒查詢的一半。

監控

本節說明如何建立快訊政策,監控費用。快訊政策可以監控指標資料,並在資料超過門檻時通知您。

監控每月擷取的記錄檔位元組數

如要建立快訊政策,以便在寫入記錄檔儲存空間的記錄檔位元組數超過使用者定義的 Cloud Logging 限制時接收通知,請使用下列設定。

新增條件
欄位

資源和指標 在「資源」選單中,選取「全域」
在「指標類別」選單中,選取「記錄指標」
在「指標」選單中,選取「每月擷取的記錄位元組數」
篩選器
跨時間序列
時間序列匯總
sum
滾動視窗 60 m
滾動週期函式 max
設定快訊觸發條件
欄位

條件類型 Threshold
快訊觸發條件 Any time series violates
門檻位置 Above threshold
門檻值 由您定義可接受的值。
重新測試週期 可接受的最低值為 30 分鐘。

監控擷取的指標總數

您無法依據每個月擷取的指標量建立快訊,但可以建立 Cloud Monitoring 費用快訊。詳情請參閱「設定帳單快訊」。

監控每月擷取的追蹤記錄時距數量

如要建立快訊政策,以便在每月擷取的 Cloud Trace 時距超過使用者定義的限制時接收通知,請使用下列設定。

新增條件
欄位

資源和指標 在「資源」選單中,選取「全域」
在「指標類別」選單中,選取「帳單」
在「指標」選單中,選取「每月擷取的追蹤記錄範圍」
篩選器
跨時間序列
時間序列匯總
sum
滾動視窗 60 m
滾動週期函式 max
設定快訊觸發條件
欄位

條件類型 Threshold
快訊觸發條件 Any time series violates
門檻位置 Above threshold
Threshold value 由您定義可接受的值。
重新測試週期 可接受的最低值為 30 分鐘。

設定帳單快訊

您可以在 Google Cloud 控制台的「預算與快訊」頁面建立快訊,設定何時 (例如當計費或預估費用超出預算時) 要收到通知:

  1. 前往 Google Cloud 控制台的「Billing」(帳單) 頁面:

    前往「帳單」

    您也可以透過搜尋列找到這個頁面。

    如果您有多個 Cloud Billing 帳戶,請依照下列其中一種方式來設定:

    • 如要管理目前專案的 Cloud Billing,請選取 [前往連結的帳單帳戶]
    • 如要查看其他 Cloud Billing 帳戶,請選取 [管理帳單帳戶],然後選擇您想設定預算的帳戶。
  2. 在「帳單」導覽選單中,選取 [預算與快訊]
  3. 按一下 [設定預算]
  4. 完整填寫預算對話方塊。從這個對話方塊中選取 Google Cloud 專案和產品,然後為您的組合設定預算。根據預設,當帳單達到預算的 50%、90% 和 100% 時,您都會收到通知。如需完整的說明文件,請參閱設定預算和預算快訊