단일 메시지 변환 (SMT)을 사용한 구독 문제 해결

이 페이지에서는 SMT가 있는 구독에 대한 일반적인 문제 해결 팁을 제공합니다.

SMT 모니터링

SMT의 성능과 구독에 미치는 영향을 파악하려면 다음 모니터링 측정항목을 사용하세요.

subscription/message_transform_latencies 측정항목은 SMT가 메시지에 적용되는 데 걸리는 시간을 측정합니다. 이 측정항목은 SMT 지연 시간만 측정하며 메시지 전송 시간의 다른 부분은 포함하지 않습니다.

이 측정항목은 두 가지 주요 라벨을 제공합니다.

  • 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에 여전히 문제가 있는 경우 지원 받기를 참고하세요.