Soluciona problemas de una suscripción con transformaciones de mensaje único (SMT)

En esta página, se proporcionan algunas sugerencias habituales para solucionar problemas relacionados con las suscripciones con SMT.

Supervisa los SMT

Para comprender el rendimiento y el impacto de los SMT en una suscripción, usa las siguientes métricas de supervisión:

La métrica subscription/message_transform_latencies mide el tiempo que tardan las SMT en aplicarse a un mensaje. La métrica solo mide la latencia del SMT y no incluye otras partes del tiempo de entrega del mensaje.

La métrica proporciona dos etiquetas clave:

  • status: Informa si la transformación se realizó correctamente o si se produjo un problema.

  • filtered: Indica si el SMT provocó que se filtrara el mensaje. Cuando un SMT filtra un mensaje en una suscripción, Pub/Sub lo confirma y el mensaje nunca se envía a los suscriptores. La etiqueta filtered es verdadera solo cuando un SMT realiza el filtrado. Los mensajes filtrados con las capacidades de filtrado integradas de Pub/Sub no se reflejan en esta métrica específica.

La métrica subscription/byte_cost se usa para identificar los mensajes que filtran los SMT o en los que fallaron los SMT. Busca estos valores específicos:

  • Cuando un SMT filtra un mensaje, operation_type es smt_subscribe_filter_drop.

  • Si un SMT no logra transformar un mensaje, verás un response_code que no es OK.

Se está acumulando un backlog

Si ves que se acumula un backlog de mensajes en la suscripción, verifica si hay errores de INVALID_ARGUMENT informados en subscription/message_transform_latencies.

Para solucionar problemas relacionados con errores de INVALID_ARGUMENT, agrega un tema de mensajes no entregados a la suscripción de interés. El tema de mensajes no entregados captura los mensajes que no se pudieron entregar a los suscriptores, junto con un atributo llamado CloudPubSubDeadLetterSourceSMTErrorMessage que explica el motivo del error.

¿Qué sigue?