このページでは、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 がメッセージの変換に失敗すると、
response_codeがOK以外になります。
バックログが蓄積されている
サブスクリプションでメッセージのバックログが蓄積されている場合は、
subscription/message_transform_latencies で報告された
INVALID_ARGUMENT エラーを確認します。
INVALID_ARGUMENT エラーをトラブルシューティングするには、対象のサブスクリプションに
デッドレター トピックを追加します。デッドレター トピックは、サブスクライバーに配信できなかったメッセージと、失敗の理由を説明する CloudPubSubDeadLetterSourceSMTErrorMessage という属性をキャプチャします。
次のステップ
- サブスクリプション SMT に問題が解決しない場合は、 サポートの利用をご覧ください。