Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

465
Visualizações
Configure la cola de mensajes fallidos de SQS para generar una alarma de vigilancia en la nube al recibir un mensaje

Estaba trabajando con Dead letter Queue en Amazon SQS. Quiero que cada vez que la cola reciba un mensaje nuevo, debería generar una alarma de CloudWatch. El problema es que configuré una alarma en la métrica: number_of_messages_sent de la cola, pero esta métrica no funciona como se esperaba en el caso de las colas de mensajes fallidos, como se menciona en la documentación de Amazon SQS Dead-Letter Queues - Amazon Simple Queue Service .

Ahora, algunas sugerencias sobre esto fueron usar number_of_messages_visible , pero no estoy seguro de cómo configurar esto en una alarma. Entonces, si configuro que el valor de esta metric>0 , entonces esto no es lo mismo que recibir un nuevo mensaje en la cola. Si hay un mensaje antiguo, el valor de la métrica siempre será >0 . Puedo hacer algún tipo de expresión matemática para obtener el delta en esta métrica durante un período definido (digamos un minuto), pero estoy buscando una solución mejor.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

Luché con el mismo problema y la respuesta para mí fue usar NumberOfMessagesSent en su lugar. Entonces podría establecer mis criterios para los nuevos mensajes que llegaron durante mi período de tiempo configurado. Esto es lo que funcionó para mí en CloudFormation.

Tenga en cuenta que las alarmas individuales no ocurren si la alarma permanece en un estado de alarma debido a fallas constantes. Puede configurar otra alarma para detectarlos. es decir: Alarma cuando ocurren 100 errores en 1 hora usando el mismo método.

Actualizado: debido a que las métricas para NumberOfMessagesReceived y NumberOfMessagesSent dependen de cómo se pone en cola el mensaje, ideé una nueva solución para nuestras necesidades utilizando la métrica ApproximateNumberOfMessagesDelayed después de agregar un retraso a la configuración de dlq. Si está agregando los mensajes a la cola manualmente, NumberOfMessagesReceived funcionará. De lo contrario, use ApproximateNumberOfMessagesDelayed después de configurar un retraso.

 MyDeadLetterQueue: Type: AWS::SQS::Queue Properties: MessageRetentionPeriod: 1209600 # 14 days DelaySeconds: 60 #for alarms DLQthresholdAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmDescription: "Alarm dlq messages when we have 1 or more failed messages in 10 minutes" Namespace: "AWS/SQS" MetricName: "ApproximateNumberOfMessagesDelayed" Dimensions: - Name: "QueueName" Value: Fn::GetAtt: - "MyDeadLetterQueue" - "QueueName" Statistic: "Sum" Period: 300 DatapointsToAlarm: 1 EvaluationPeriods: 2 Threshold: 1 ComparisonOperator: "GreaterThanOrEqualToThreshold" AlarmActions: - !Ref MyAlarmTopic
over 4 years ago · Santiago Trujillo Relatório

0

Tuvimos el mismo problema y lo solucionamos usando 2 métricas y creando una expresión matemática.

 ConsentQueue: Type: AWS::SQS::Queue Properties: QueueName: "queue" RedrivePolicy: deadLetterTargetArn: Fn::GetAtt: - "DLQ" - "Arn" maxReceiveCount: 3 # after 3 tries the event will go to DLQ VisibilityTimeout: 65 DLQ: Type: AWS::SQS::Queue Properties: QueueName: "DLQ" DLQAlarm: Type: AWS::CloudWatch::Alarm Properties: AlarmDescription: "SQS failed" AlarmName: "SQSAlarm" Metrics: - Expression: "m2-m1" Id: "e1" Label: "ChangeInAmountVisible" ReturnData: true - Id: "m1" Label: "MessagesVisibleMin" MetricStat: Metric: Dimensions: - Name: QueueName Value: !GetAtt DLQ.QueueName MetricName: ApproximateNumberOfMessagesVisible Namespace: "AWS/SQS" Period: 300 # evaluate maximum over period of 5 min Stat: Minimum Unit: Count ReturnData: false - Id: "m2" Label: "MessagesVisibleMax" MetricStat: Metric: Dimensions: - Name: QueueName Value: !GetAtt DLQ.QueueName MetricName: ApproximateNumberOfMessagesVisible Namespace: "AWS/SQS" Period: 300 # evaluate maximum over period of 5 min Stat: Maximum Unit: Count ReturnData: false ComparisonOperator: GreaterThanOrEqualToThreshold Threshold: 1 DatapointsToAlarm: 1 EvaluationPeriods: 1

El período es importante, por lo que el mínimo y el máximo se evalúan durante un período más largo. Gráfico de expresión matemática de AWS

over 4 years ago · Santiago Trujillo Relatório

0

Utilicé la función matemática métrica RATE para activar una alarma cada vez que llega un mensaje a la cola de mensajes fallidos.

Seleccione dos métricas ApproximateNumberOfMessagesVisible y ApproximateNumberOfMessagesNotVisible para su cola de mensajes fallidos.

Configure la expresión métrica como RATE(m1+m2) , establezca el umbral en 0 y seleccione el operador de comparación como GreaterThanThreshold .

m1+m2 es el número total de mensajes en la cola en un momento dado. Cada vez que llega un nuevo mensaje a la cola, la tasa de esta expresión irá por encima de cero. Asi es como funciona.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda