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

En esta página, se proporcionan algunas sugerencias comunes para solucionar problemas de 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 cuánto tiempo tardan las SMT en aplicarse a un mensaje. La medición solo mide la latencia de SMT y no incluye otras partes del tiempo de entrega de mensajes.

La métrica proporciona dos etiquetas clave:

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

  • filtered: Indica si el SMT hizo 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. Esta etiqueta filtered es verdadera solo cuando un SMT realiza el filtrado. Los mensajes que se filtran con las funciones 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. Busca estos valores específicos:

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

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

Se está acumulando un retraso

Si ves una acumulación de mensajes en la suscripción, verifica si hay errores de INVALID_ARGUMENT informados en subscription/message_transform_latencies.

Para solucionar problemas 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 de la falla.

¿Qué sigue?