記錄指標疑難排解

本頁面提供疑難排解資訊,說明在 Cloud Logging 中使用記錄指標時的常見情境。

無法查看或建立指標

記錄指標僅適用於單一 Google Cloud 專案,或 Google Cloud 專案中的記錄值區。您無法為其他資源 (例如帳單帳戶或機構) 建立以記錄為準的指標。 Google Cloud系統只會針對收到記錄檔的 Google Cloud 專案或值區計算記錄指標。

如要建立指標,您必須具備正確的 Identity and Access Management 權限。詳情請參閱「使用 IAM 控管存取權:以記錄為準的指標」。

指標遺漏記錄資料

記錄指標中遺漏資料有幾個可能的原因:

  • 新記錄項目可能與指標的篩選器不符。記錄指標會從在建立指標後收到的相符記錄項目取得資料。記錄不會從先前的記錄項目對指標執行補充作業。

  • 新記錄項目可能不包含正確的欄位,或者資料可能不是分佈指標的正確擷取格式。請確認您的欄位名稱與規則運算式是否正確。

  • 您的指標計數可能會延遲。即使記錄檢視器中顯示可計數的記錄項目,也可能需要 10 分鐘的時間,才能更新 Cloud Monitoring 中的記錄指標。

  • 顯示的記錄項目可能會延遲計數,甚至根本不計數,因為這些記錄項目的時間戳記在過去或未來較遠的時間點。如果 Cloud Logging 收到的記錄項目時間超過過去 24 小時或未來 10 分鐘,系統就不會在記錄指標中計算這個記錄項目。

    系統會在記錄指標 logging.googleapis.com/logs_based_metrics_error_count 中記錄遲到項目數。

    範例:與記錄指標相符的記錄項目已過期。timestamp 為 2020 年 2 月 20 日下午 2 點 30 分,receivedTimestamp 為 2020 年 2 月 21 日下午 2 點 45 分。這個項目不會計入記錄指標。

  • 記錄指標建立後,系統會開始收集可能用於計算指標的記錄項目。記錄指標會評估儲存在記錄值區的記錄項目,但不會評估儲存在 Logging 中的記錄項目。

  • 記錄指標的資料有缺口。系統處理以記錄為基礎的指標資料時,並不會保證每個指標資料點都會保留下來,因此資料可能會出現一些空白。出現空白時,通常是偶發且時間短暫。不過,如果您有監控記錄指標的快訊政策,資料間的空白可能會導致誤發通知。您在警示政策中使用的設定,可降低發生這種情況的可能性。

    範例:每五分鐘寫入一次「心跳」記錄項目,而以記錄為基礎的指標會計算「心跳」記錄項目的數量。警示政策會將五分鐘間隔內的計數加總,並在總數低於 1 時通知您。當時間序列缺少資料點時,警示政策會插入合成值,也就是最近樣本的複本,且最有可能為零,然後評估條件。因此,即使只有一個缺少的資料點,加總值也會為零,導致這項快訊政策傳送通知。

    為降低誤發通知的風險,請將政策設為計算多個「心跳」記錄項目,而非僅計算一個。

在 Cloud Monitoring 中,資源類型為「undefined」

部分 Cloud Logging 受控資源類型並未直接對應至 Cloud Monitoring 受控資源類型。舉例來說,當您首次根據記錄指標建立警示政策或圖表時,可能會看到資源類型為「未定義」。

資源類型未定義。

受控資源類型會對應至 global,或是 Cloud Monitoring 中的其他受控資源類型。請參閱僅限記錄資源的對應項目,判斷您需要選擇哪種受控資源類型。

通知中的標籤未解析

您可以建立記錄指標,然後建立警告政策來監控該記錄指標。在警示政策的說明欄位中,您可以使用 ${log.extracted_label.KEY} 格式的變數參照已擷取的標籤,其中 KEY 是您為已擷取的標籤指定的名稱。通知中未解析標籤。

如要解決這個問題,請採取下列任一做法:

  • 從文件中移除已擷取的標籤內容。監控記錄指標的警告政策無法從記錄項目中擷取資料。

  • 建立以記錄為基礎的警告。這些快訊政策可從導致快訊政策觸發的記錄項目中擷取資料。

事件未建立或為誤報

您可能會收到誤報事件,或是 Monitoring 未根據以記錄為主的指標建立事件,因為快訊政策的對齊期間過短。在下列情況下,您可能會遇到偽陽性:

  • 快訊政策使用「小於」邏輯時。
  • 快訊政策以分布指標的百分位條件為依據。
  • 指標資料有落差

記錄項目可能會延遲傳送至 Logging,因此可能會發生誤報事件。舉例來說,在某些情況下,記錄欄位 timestampreceiveTimestamp 的差異可能為數分鐘。此外,在記錄值區中儲存記錄時,記錄項目產生和記錄功能接收記錄之間,會有一定的延遲時間。也就是說,在記錄項目產生後,Logging 可能要到稍晚才會取得特定記錄項目的總計數。因此,如果警告政策使用「小於」邏輯,或根據分布指標的百分比條件,就可能會產生誤報警告,因為系統尚未計算所有記錄項目。

不過,記錄指標最終會保持一致,因為相符的記錄項目可透過 timestamp 傳送至記錄,而該 timestamp 比記錄的 receiveTimestamp 更舊或更新。

也就是說,如果 Logging 已收到相同時間戳記的現有記錄項目,則記錄指標可接收時間戳記較早的記錄項目。因此,必須更新指標值。

為確保即使是準時資料,通知也能保持準確,建議您將條件的對齊期間設為至少 10 分鐘。特別是,這個值應足夠大,確保系統能計算符合篩選條件的多個記錄項目。舉例來說,如果以記錄為基礎的指標會計算「心跳」記錄項目,而這些項目預計每 N 分鐘出現一次,則請將對齊期間設為 2N 分鐘或 10 分鐘 (以較大者為準):

  • 如果您使用 Google Cloud 主控台,請使用「滾動視窗」選單設定對齊期間。

  • 如果您使用 API,請使用條件的 aggregations.alignmentPeriod 欄位設定對齊期間。

指標有太多時間序列

指標中的時間序列數取決於標籤值的不同組合數。時間序列的數量稱為指標的基數,且不得超過 30,000。

您可以為每個標籤值組合產生時間序列,因此如果您有一或多個標籤的值數量很多,就很容易超過 30,000 個時間序列。請避免使用高基數指標。

隨著指標的基數增加,指標可能會遭到限制,某些資料點可能不會寫入到指標中。由於圖表必須處理大量時間序列,因此顯示指標的圖表載入速度可能會變慢。您也可能會因查詢時間序列資料的 API 呼叫而產生費用;詳情請參閱 Cloud Monitoring 費用一文。

如要避免建立高基數指標:

  • 確認您的標籤欄位與擷取器規則運算式符合有限制基數的值。

    舉例來說,請勿在標籤中儲存大小、計數或時間長度。此外,請勿儲存網址、IP 位址或專屬 ID 等欄位,因為這些欄位都可能產生大量時間序列。

  • 避免擷取可能隨標籤值無限制變更的文字訊息。

  • 避免擷取無限制基數的數值。

  • 僅從已知基數的標籤擷取值;例如,具有一組已知值的狀態碼。

這些以系統記錄為基礎的指標可協助您評估新增或移除標籤對指標基數的影響:

檢查這些指標時,您可以進一步依指標名稱篩選結果。詳情請參閱「選取指標:篩選」一文。

指標名稱無效

建立計數器或分佈指標時,請選擇在專案的記錄指標中不重複的指標名稱。 Google Cloud

指標名稱字串不得超過100 個字元,且只能包含下列字元:

  • AZ
  • az
  • 09
  • 特殊字元 _-.,+!*',()%\/

    正斜線字元 / 表示指標名稱元素階層,因此不得做為名稱的第一個字元。

指標值不正確

您發現記錄指標的回報值有時與 Logs Explorer 回報的記錄項目數量不同。

如要盡量減少差異,請採取下列做法:

  • 確認應用程式不會傳送重複的記錄項目。如果記錄項目具有相同的 timestampinsertId,就會視為重複項目。Logs Explorer 會自動隱藏重複的記錄項目。不過,記錄指標會計算符合指標篩選條件的每個記錄項目。

  • 請確認在時間戳記為過去 24 小時內或未來 10 分鐘內時,記錄項目會傳送至 Cloud Logging。記錄項目的時間戳記不在這些範圍內,則不會計入記錄指標。

您無法完全避免重複記錄。如果在處理記錄項目時發生內部錯誤,Cloud Logging 會叫用重試程序。重試程序可能會導致記錄項目重複。當記錄項目重複時,記錄指標的值可能會過大,因為這些指標會計算符合指標篩選條件的每個記錄項目。

標籤值會遭到截斷

使用者定義的標籤值不得超過 1,024 個位元組。

無法刪除自訂記錄指標

您嘗試使用 Google Cloud 控制台刪除自訂的以記錄為基礎的指標。刪除要求失敗,刪除對話方塊會顯示錯誤訊息 There is an unknown error while executing this operation

如要解決這個問題,請嘗試下列操作:

  • 在 Google Cloud 控制台中重新整理「記錄指標」頁面。內部時間問題可能會導致顯示錯誤訊息。

  • 找出並刪除監控記錄指標的任何快訊政策。確認警告政策不會監控記錄指標後,請刪除記錄指標。警告政策監控的記錄指標無法刪除。