Métricas de CloudWatch disponibles para Amazon SQS - Amazon Simple Queue Service

Métricas de CloudWatch disponibles para Amazon SQS

Amazon SQS envía las siguientes métricas a CloudWatch.

nota

En el caso de algunas métricas, el resultado es aproximado debido a la arquitectura distribuida de Amazon SQS. En la mayoría de los casos, el recuento debe aproximarse al número real de mensajes de la cola.

Métricas de Amazon SQS

Amazon SQS publica automáticamente métricas operativas en Amazon CloudWatch bajo el espacio de nombres AWS/SQS. Estas métricas le ayudan a supervisar el estado y rendimiento de la cola. Debido a la naturaleza distribuida de SQS, muchos valores son aproximados, pero lo suficientemente precisos para la mayoría de las decisiones operativas.

nota
  • Todas las métricas emiten valores no negativos solo cuando la cola está activa.

  • Algunas métricas (como SentMessageSize) no se emiten hasta que se envía al menos un mensaje.

Métrica Descripción Unidades Notificación de comportamiento Notas clave
ApproximateAgeOfOldestMessage La antigüedad del mensaje sin procesar más antiguo de la cola.

Segundos

Se notifica si la cola contiene al menos un mensaje activo.
  • En el caso de las colas estándar, si un mensaje se recibe tres o más veces y no se elimina, SQS lo mueve al final de la cola. La métrica refleja entonces la antigüedad del siguiente mensaje que no ha superado el umbral de recepción. Esta reordenación se produce incluso cuando existe una política de redireccionamiento.

  • Los mensajes poison-pill (aquellos que se reciben de manera repetida pero nunca se eliminan) se excluyen de esta métrica hasta que se procesen correctamente.

  • Cuando un mensaje se traslada a una DLQ tras superar el maxReceiveCount, se restablece su antigüedad. En ese caso, la métrica de la DLQ refleja la hora en que se trasladó el mensaje, no la hora en que se envió originalmente.

  • Las colas FIFO no reordenan los mensajes para mantener el orden. Un mensaje fallido bloquea el grupo de mensajes hasta que se elimina o caduca. Si se configura una DLQ, el mensaje pasa a ella una vez que se alcanza el umbral de recepción.

ApproximateNumberOfGroupsWithInflightMessages Solo para FIFO. El número de grupos de mensajes con uno o más mensajes en tránsito.

Recuento

Se notifica si la cola FIFO está activa.
  • Se considera que un mensaje está en tránsito cuando un consumidor lo haya recibido de la cola, pero aún no se haya eliminado ni haya caducado.

  • Esta métrica le ayuda a solucionar problemas y a optimizar el rendimiento de la cola FIFO. Los valores altos suelen indicar una gran simultaneidad.

  • Si la cola tiene una gran cantidad de tareas pendientes y este valor sigue siendo bajo, considere la posibilidad de escalar los consumidores o aumentar el número de grupos de mensajes activos.

  • Para ver el rendimiento y los límites de tránsito, consulte Cuotas de Amazon SQS.

ApproximateNumberOfMessagesDelayed

El número de mensajes de la cola que van con retraso y no están inmediatamente disponibles para su recuperación.

Recuento

Se notifica si hay mensajes retrasados en la cola.
  • Se aplica a las colas configuradas con un retraso predeterminado y a los mensajes individuales enviados con un parámetro DelaySeconds.

  • Los mensajes retrasados permanecen ocultos para los consumidores hasta que transcurre su periodo de retraso, lo que puede afectar a la percepción de las colas de tareas pendientes o al rendimiento.

ApproximateNumberOfMessagesNotVisible El número de mensajes en tránsito que se han recibido pero que aún no se han eliminado ni han caducado.

Recuento

Se notifica si existen mensajes en tránsito.
  • Los mensajes entran en el estado “en tránsito” después de enviarse a un consumidor a través de la API ReceiveMessage.

  • Estos mensajes se ocultan temporalmente a otros consumidores durante el intervalo de tiempo de espera de visibilidad.

  • Utilice esta métrica para realizar un seguimiento de los retrasos en el procesamiento de mensajes o de los consumidores bloqueados.

ApproximateNumberOfMessagesVisible El número de mensajes actualmente disponibles para su recuperación y procesamiento.

Recuento

Se notifica si la cola está activa.
  • Refleja las tareas pendientes en el procesamiento de la cola.

  • No hay un límite estricto en cuanto al número de mensajes que se pueden acumular, pero están sujetos al periodo de retención configurado para la cola.

  • Un valor alto y constante puede indicar un aprovisionamiento insuficiente de consumidores o una lógica de procesamiento bloqueada.

NumberOfEmptyReceives¹ El número de llamadas a la API ReceiveMessage que no devolvieron ningún mensaje.

Recuento

Se notifica durante las operaciones de recepción.
  • Esta métrica puede ayudar a identificar ineficiencias en el comportamiento de sondeo o instancias de consumidor infrautilizadas.

  • Pueden producirse valores altos cuando la cola está vacía, el consumidor utiliza sondeos cortos o los mensajes se procesan más rápido de lo que se producen.

  • Esto no es un indicador preciso del estado de la cola. Refleja el comportamiento del servicio y puede incluir reintentos.

NumberOfDeduplicatedSentMessages Solo para FIFO. El número de mensajes enviados que se desduplicaron y no se agregaron a la cola.

Recuento

Se notifica si se detectan valores o contenidos duplicados en MessageDeduplicationId.
  • SQS desduplica los mensajes en función de MessageDeduplicationId o del hash basado en contenido (si está habilitado).

  • Un valor alto puede indicar que un productor está enviando repetidamente el mismo mensaje dentro del intervalo de desduplicación de 5 minutos.

  • Utilice esta métrica para solucionar problemas de lógica redundante del productor o para confirmar que la desduplicación funciona según lo previsto.

NumberOfMessagesDeleted¹

El número de mensajes eliminados correctamente de la cola.

Recuento

Se notifica para cada solicitud de eliminación con un identificador de recepción válido.
  • Esta métrica cuenta todas las operaciones de eliminación que se han realizado correctamente, incluso si el mismo mensaje se ha eliminado más de una vez.

  • Entre los motivos habituales por los que los valores son superiores a los esperados se incluyen los siguientes:

    • Se eliminan varias veces el mismo mensaje con distintos identificadores de recepción una vez transcurrido el tiempo de espera de visibilidad y recibido el mensaje de nuevo.

    • Las eliminaciones se duplican con el mismo identificador de recepción, lo que sigue devolviendo un estado correcto y aumentando la métrica.

  • Utilice esta métrica para realizar un seguimiento del procesamiento correcto de los mensajes, pero no la considere como un recuento exacto de los mensajes únicos eliminados.

NumberOfMessagesReceived¹ El número de mensajes devueltos por la API ReceiveMessage.

Recuento

Se notifica durante las operaciones de recepción.
  • Esto incluye todos los mensajes devueltos a los consumidores, incluidos aquellos que posteriormente se devuelven a la cola debido a la expiración del tiempo de espera de visibilidad.

  • Un mismo mensaje se puede recibir varias veces si no se elimina, lo que puede provocar que esta métrica supere el número de mensajes enviados.

  • Utilícela para realizar un seguimiento de la actividad de los consumidores, pero no lo considere como un recuento de mensajes únicos procesados.

NumberOfMessagesSent¹ El número de mensajes agregados correctamente a una cola.

Recuento

Se notifica por cada envío manual realizado correctamente.
  • Se cuentas las llamadas manuales a SendMessage o SendMessageBatch, incluidas aquellas dirigidas directamente a una DLQ.

  • Los mensajes que se transfieren automáticamente a una DLQ después de superar el maxReceiveCount no se incluyen en esta métrica.

  • Como resultado, NumberOfMessagesSent puede ser inferior a NumberOfMessagesReceived, especialmente si las políticas de redireccionamiento están trasladando muchos mensajes a DLQ en segundo plano.

SentMessageSize¹

El tamaño de los mensajes enviados correctamente a la cola.

Bytes

No se emite hasta que se envíe al menos un mensaje.
  • Esta métrica no aparecerá en la consola de CloudWatch hasta que la cola reciba su primer mensaje.

  • Utilice esta métrica para realizar un seguimiento del tamaño de cada mensaje en bytes. Esto resulta útil para analizar las tendencias de la carga útil o estimar el costo del rendimiento.

  • El tamaño máximo de los mensajes para SQS es de 1 MiB.

ApproximateNumberOfNoisyGroups

El número de grupos de mensajes que se consideran ruidosos en una cola justa. Un grupo de mensajes ruidoso representa un inquilino vecino ruidoso de una cola de varios inquilinos.

Recuento

Se notifica un valor no negativo si la cola está activa.
  • Ayuda a identificar posibles problemas de vecinos ruidosos en entornos de varios inquilinos mediante el seguimiento de los grupos de mensajes que consumen recursos desproporcionados.

  • Utilice esta métrica para configurar alarmas que se activen cuando el número de grupos ruidosos supere el umbral aceptable, lo que indica posibles problemas de equidad en las colas.

ApproximateNumberOfMessagesVisibleInQuietGroups

El número de mensajes visibles, sin incluir los mensajes de grupos de mensajes ruidosos.

Recuento

Se notifica un valor no negativo si la cola está activa.
  • Proporciona visibilidad de la cola de tareas pendientes en los grupos de mensajes con velocidad estándar, sin incluir los mensajes de vecinos ruidosos.

  • Ayuda a identificar las verdaderas tareas pendientes en el procesamiento de los grupos de mensajes típicos al filtrar el impacto de los vecinos ruidosos.

ApproximateNumberOfMessagesNotVisibleInQuietGroups El número de mensajes en tránsito, sin incluir los mensajes de grupos de mensajes ruidosos.

Recuento

Se notifica un valor no negativo si la cola está activa.
  • Realiza un seguimiento de los mensajes en tránsito (los que se están procesando pero aún no se han eliminado) de grupos de mensajes que se comportan bien.

  • Utilice esta métrica para supervisar el rendimiento del procesamiento de los grupos de mensajes normales y detectar cuellos de botella en el procesamiento que no se deban a vecinos ruidosos.

ApproximateNumberOfMessagesDelayedInQuietGroups El número de mensajes, sin incluir los mensajes de grupos de mensajes ruidosos que van con retraso y no están disponibles para su lectura inmediata. Los mensajes retrasados se producen cuando la cola está configurada como una cola con retraso o cuando se ha enviado un mensaje con un parámetro de retraso.

Recuento

Se notifica un valor no negativo si la cola está activa.
  • Ayuda a supervisar el retraso en las tareas pendientes de mensajes de grupos de mensajes con patrones de rendimiento normales o esperados (a diferencia de los grupos ruidosos o de gran volumen)

  • Es útil para entender los requisitos de procesamiento futuros y la planificación de la capacidad en cargas de trabajo típicas.

ApproximateAgeOfOldestMessageInQuietGroups La antigüedad del mensaje más antiguo no eliminado de la cola, sin incluir los mensajes de grupos de mensajes ruidosos.

Segundos

Se notifica un valor no negativo si la cola está activa.
  • Se utiliza para supervisar el cumplimiento del SLA y detectar cuellos de botella en el procesamiento de grupos de mensajes con patrones de rendimiento normales o esperados (a diferencia de los grupos de mensajes ruidosos o de gran volumen que, de otro modo, podrían sesgar la métrica).

  • Utilice esta métrica para configurar alarmas cuando se agoten los tiempos de espera del procesamiento de mensajes e ignorar los mensajes envejecidos artificialmente procedentes de vecinos ruidosos.

¹ Estas métricas reflejan la actividad del sistema y pueden incluir reintentos, duplicados o mensajes retrasados. No utilice recuentos sin procesar para estimar el estado de la colas en tiempo real sin tener en cuenta el comportamiento del ciclo de vida de los mensajes.

Colas de mensajes fallidos (DLQ) y métricas de CloudWatch

Al trabajar con DLQ, es importante entender cómo se comportan las métricas de Amazon SQS:

  • NumberOfMessagesSent – Esta métrica se comporta de forma diferente en las DLQ:

    • Envío manual: esta métrica captura los mensajes que se envían manualmente a una DLQ.

    • Redireccionamiento automático: esta métrica no captura los mensajes que se trasladan automáticamente a una DLQ debido a errores de procesamiento. Como resultado, las métricas NumberOfMessagesReceived y NumberOfMessagesSent pueden mostrar discrepancias en las DLQ.

  • Métrica recomendada para las DLQ – Para supervisar el estado de una DLQ, use la métrica ApproximateNumberOfMessagesVisible. Esta métrica indica el número de mensajes disponibles actualmente para su procesamiento en la DLQ.

Colas justas y métricas de CloudWatch

Cuando se utilizan colas justas, Amazon SQS emite las siguientes métricas adicionales:

  • ApproximateNumberOfNoisyGroups

  • ApproximateNumberOfMessagesVisibleInQuietGroups

  • ApproximateNumberOfMessagesNotVisibleInQuietGroups

  • ApproximateNumberOfMessagesDelayedInQuietGroups

  • ApproximateAgeOfOldestMessageInQuietGroups

nota

Cada métrica QuietGroup es un subconjunto de la métrica Approximate estándar equivalente de la cola, pero excluye los mensajes de grupos de vecinos ruidosos.

Grupos ruidosos

Un grupo de mensajes ruidoso representa un inquilino vecino ruidoso de una cola de varios inquilinos.

Grupos silenciosos

Grupos de mensajes que excluyen los grupos ruidosos.

Observación del comportamiento de las colas justas de SQS

Para supervisar el efecto de las colas justas de Amazon SQS, puede comparar las métricas Approximate..InQuietGroups con las métricas estándar de las colas. Durante los picos de tráfico de un inquilino específico, las métricas generales de las cola pueden revelar un aumento de las tareas pendientes o una antigüedad de los mensajes. Sin embargo, al observar los grupos silenciosos de forma aislada, se puede identificar que la mayoría de los grupos de mensajes o inquilinos no ruidosos no se ven afectados y proporcionar una estimación del número total de grupos de mensajes afectados.

Si bien estas nuevas métricas ofrecen una descripción general óptima del comportamiento de las colas justas de Amazon SQS, puede resultar útil saber qué inquilino específico está provocando la carga. La Información de colaboradores de Amazon CloudWatch le permite ver métricas acerca de los colaboradores Top-N, el número total de colaboradores únicos y su uso. Esto resulta especialmente útil en escenarios en los que se trata con miles de inquilinos que, de otro modo, generarían datos (y costos) de alta cardinalidad al emitir métricas tradicionales.

Puede consultar un ejemplo de configuración de supervisión de colas justas en GitHub.

Dimensiones para las métricas de Amazon SQS

Las métricas de Amazon SQS en CloudWatch utilizan una sola dimensión: QueueName. Todos los datos de las métricas se agrupan y filtran por el nombre de la cola.

Consejos para la supervisión

Supervise SQS de forma eficaz mediante métricas clave y alarmas de CloudWatch para detectar las colas de tareas pendientes, optimizar el rendimiento y mantenerse dentro de los límites del servicio.

  • Configure alarmas de CloudWatch basadas en ApproximateNumberOfMessagesVisible para detectar el aumento de tareas pendientes.

  • Supervise NumberOfEmptyReceives para ajustar la frecuencia de los sondeos y reducir el costo de la API.

  • Utilice ApproximateNumberOfGroupsWithInflightMessages en las colas FIFO para diagnosticar los límites de rendimiento.

  • Revise las cuotas de SQS para conocer los umbrales de métricas y los límites del servicio.