Resolver problemas de uma assinatura com transformações de mensagem única (SMTs)

Esta página oferece algumas dicas comuns de solução de problemas para as assinaturas com SMTs.

Monitorar SMTs

Para entender a performance e o impacto dos SMTs em uma assinatura, use as seguintes métricas de monitoramento:

A métrica subscription/message_transform_latencies mede quanto tempo leva para as SMTs serem aplicadas a uma mensagem. A métrica mede apenas a latência do SMT e não inclui outras partes do tempo de entrega da mensagem.

A métrica fornece dois rótulos principais:

  • status: informa se a transformação foi bem-sucedida ou encontrou um problema.

  • filtered: indica se o SMT causou a filtragem da mensagem. Quando um SMT filtra uma mensagem em uma assinatura, o Pub/Sub a confirma, e a mensagem nunca é enviada aos assinantes. Esse rótulo filtered é verdadeiro apenas quando um SMT executa a filtragem. As mensagens filtradas usando os recursos de filtragem integrados do Pub/Sub não são refletidas nessa métrica específica.

A métrica subscription/byte_cost é usada para identificar mensagens filtradas por SMTs ou em que as SMTs falharam. Procure estes valores específicos:

  • Quando um SMT filtra uma mensagem, o operation_type é smt_subscribe_filter_drop.

  • Se uma SMT não conseguir transformar uma mensagem, você verá uma response_code que não é OK.

Um backlog está se acumulando

Se você notar um acúmulo de mensagens na verificação de assinatura para erros de INVALID_ARGUMENT informados em subscription/message_transform_latencies.

Para resolver problemas de erros de INVALID_ARGUMENT, adicione um tópico de mensagens inativas à assinatura de interesse. O tópico de mensagens inativas captura mensagens que não foram entregues aos assinantes, junto com um atributo chamado CloudPubSubDeadLetterSourceSMTErrorMessage que explica o motivo da falha.

A seguir