排解單一訊息轉換 (SMT) 訂閱問題

本頁提供含有 SMT 的訂閱項目常見疑難排解提示。

監控 SMT

如要瞭解 SMT 對訂閱項目的成效和影響,請使用下列監控指標:

subscription/message_transform_latencies 指標會測量 SMT 套用至訊息所需的時間。這項指標只會測量 SMT 延遲時間,不會包含訊息傳送時間的其他部分。

這項指標提供兩個主要標籤:

  • status:回報轉換是否成功,或是否發生問題。

  • filtered:指出 SMT 是否導致訊息遭到篩除。如果 SMT 篩選掉訂閱項目的訊息,Pub/Sub 會確認該訊息,且不會將訊息傳送給訂閱者。只有在 SMT 執行篩選時,這個 filtered 標籤才會為 true。使用 Pub/Sub 的內建篩選功能篩選的訊息不會反映在這個特定指標中。

subscription/byte_cost 指標可用來找出遭 SMT 篩除或 SMT 失敗的訊息。請找出下列特定值:

  • 當 SMT 篩選郵件時,operation_type 為 smt_subscribe_filter_drop

  • 如果 SMT 無法轉換訊息,您會看到 response_code,而不是 OK

積壓的工作越來越多

如果訂閱項目中累積大量待處理訊息,請檢查 subscription/message_transform_latencies 中回報的 INVALID_ARGUMENT 錯誤。

如要排解 INVALID_ARGUMENT 錯誤,請將dead-letter 主題新增至感興趣的訂閱項目。無效信件主題會擷取無法傳送給訂閱者的訊息,以及名為 CloudPubSubDeadLetterSourceSMTErrorMessage 的屬性,說明失敗原因。

後續步驟

  • 如果訂閱型 SMT 仍有問題,請參閱「取得支援」。