単一メッセージ変換(SMT)を使用したサブスクリプションのトラブルシューティング

このページでは、SMT を使用したサブスクリプションに関する一般的なトラブルシューティングのヒントをいくつか紹介します。

SMT をモニタリングする

SMT のパフォーマンスとサブスクリプションへの影響を把握するには、次のモニタリング指標を使用します。

subscription/message_transform_latencies 指標は、SMT がメッセージに適用されるまでにかかる時間を測定します。この指標は SMT レイテンシのみを測定し、メッセージ配信時間の他の部分は含まれません。

この指標には、次の 2 つの主要なラベルがあります。

  • status: 変換が成功したかどうか、問題が発生したかどうかを報告します。

  • filtered: SMT が原因でメッセージが除外されたかどうかを示します。SMT がサブスクリプションでメッセージをフィルタすると、Pub/Sub は確認応答を行い、メッセージはサブスクライバーに送信されません。この filtered ラベルは、SMT がフィルタリングを実行する場合にのみ true になります。Pub/Sub の組み込みフィルタリング機能を使用してフィルタされたメッセージは、この特定の指標には反映されません。

subscription/byte_cost 指標は、SMT によってフィルタされたメッセージや SMT が失敗したメッセージを特定するために使用されます。次の値を探します。

  • SMT がメッセージをフィルタリングすると、operation_type は smt_subscribe_filter_drop になります。

  • SMT がメッセージを変換できない場合は、OK ではなく response_code が表示されます。

バックログが蓄積している

サブスクリプションにメッセージのバックログが蓄積されている場合は、subscription/message_transform_latencies で報告された INVALID_ARGUMENT エラーを確認します。

INVALID_ARGUMENT エラーのトラブルシューティングを行うには、該当するサブスクリプションにデッドレター トピックを追加します。デッドレター トピックは、サブスクライバーに配信できなかったメッセージと、失敗の理由を説明する CloudPubSubDeadLetterSourceSMTErrorMessage という属性をキャプチャします。

次のステップ

  • サブスクリプション SMT に問題がまだある場合は、サポートの利用をご覧ください。