Memecahkan masalah subscription dengan Single Message Transforms (SMT)

Halaman ini memberikan beberapa tips pemecahan masalah umum untuk langganan dengan SMT.

Memantau SMT

Untuk memahami performa dan dampak SMT pada langganan, gunakan metrik pemantauan berikut:

Metrik subscription/message_transform_latencies mengukur berapa lama waktu yang diperlukan agar SMT diterapkan ke pesan. Metrik hanya mengukur latensi SMT dan tidak menyertakan bagian lain dari waktu pengiriman pesan.

Metrik ini menyediakan dua label utama:

  • status: melaporkan apakah transformasi berhasil atau mengalami masalah.

  • filtered: menunjukkan apakah SMT menyebabkan pesan difilter. Saat SMT memfilter pesan pada langganan, Pub/Sub akan mengonfirmasinya, dan pesan tidak akan pernah dikirim ke pelanggan. Label filtered ini hanya benar jika SMT melakukan pemfilteran. Pesan yang difilter menggunakan kemampuan pemfilteran bawaan Pub/Sub tidak tercermin dalam metrik khusus ini.

Metrik subscription/byte_cost digunakan untuk mengidentifikasi pesan yang difilter oleh SMT atau tempat SMT gagal. Cari nilai spesifik berikut:

  • Saat SMT memfilter pesan, operation_type adalah smt_subscribe_filter_drop.

  • Jika SMT gagal mengubah pesan, Anda akan melihat response_code yang bukan OK.

Tumpukan tugas yang belum selesai semakin banyak

Jika Anda melihat backlog pesan yang menumpuk di langganan, periksa error INVALID_ARGUMENT yang dilaporkan di subscription/message_transform_latencies.

Untuk memecahkan masalah error INVALID_ARGUMENT, tambahkan topik pesan yang tidak terkirim ke langganan yang diinginkan. Topik pesan yang dihentikan pengirimannya mencatat pesan yang tidak dapat dikirimkan ke pelanggan, beserta atribut yang disebut CloudPubSubDeadLetterSourceSMTErrorMessage yang menjelaskan alasan kegagalan.

Langkah berikutnya