首页 > 解决方案 > 每次添加消息时 AWS Dead Letter Queue Cloudwatch 警报

问题描述

AWS cloudwatch每次将消息添加到我的 DLQ 时,我都想触发警报。我正在使用云形成来部署我的 sqs/dlq 资源,但我不知道如何配置这种类型的警报。

标签: amazon-web-servicesamazon-sqs

解决方案


配置报警时需要使用 NumberOfMessagesSent。请参阅 CloudFormation 中的参考:https ://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cw-alarm.html这是我的解决方案。这将为每条消息发出警报,但如果您的经期不断发生错误,警报状态将不会清除。如果警报状态没有清除,它将阻止未来的通知。所以我不会让这个时期太长。

另请注意,如果您不手动将消息添加到队列中,那么您将需要另一个解决方案。

AWS 文档:如果您手动将消息发送到死信队列,则该消息由 NumberOfMessagesSent 指标捕获。但是,如果由于处理尝试失败而将消息发送到死信队列,则此指标不会捕获该消息。因此,NumberOfMessagesSent 和 NumberOfMessagesReceived 的值可能不同。

这个问题中概述了一个更模糊但类似的解决方案 Configure SQS Dead letter Queue to raise a cloud watch alarm on received a message

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: "NumberOfMessagesSent"
      Dimensions:
        - Name: "QueueName"
          Value:
            Fn::GetAtt:
              - "MyDeadLetterQueue"
              - "QueueName"
      Statistic: "Sum"
      Period: 300  
      DatapointsToAlarm: 1 
      EvaluationPeriods: 2       
      Threshold: 1
      ComparisonOperator: "GreaterThanOrEqualToThreshold"
      AlarmActions:
        - !Ref MyAlarmTopic

推荐阅读