このページでは、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 に問題がまだある場合は、サポートの利用をご覧ください。