排解單一訊息轉換 (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 錯誤,請在所需訂閱項目中新增死信主題。無效信件主題會擷取無法傳送給訂閱端的訊息,以及說明失敗原因的 CloudPubSubDeadLetterSourceSMTErrorMessage 屬性。

後續步驟

  • 如果訂閱的 SMT 仍有問題,請參閱取得支援