0

如果消息发送到 ,我正在尝试触发警报SQS。但是,我看到CloudWatch指标表明有消息但未触发警报。

警报当前也处于INSUFFICIENT_DATA状态。为了测试,我通过boto3客户端发送消息。

以下是我的 CloudFormation 模板SQSCloudWatch警报

QueueMessageAlarm:
Type: AWS::CloudWatch::Alarm
Condition: AlarmsEnabled
Properties:
  AlarmDescription: "Alarm if queue message is greater than 0"
  AlarmActions:
    - !Ref SampleNotificationTopic
  Namespace: "AWS/SQS"
  MetricName: "NumberOfMessagesReceived"
  Statistic: "Sum"
  Period: "900"
  EvaluationPeriods: "1"
  Threshold: "0"
  ComparisonOperator: "GreaterThanThreshold"
  Dimensions:
    - Name: "QueueName"
    - Value:
        Fn::GetAtt:
          - "KinesisStreamFileQueue"
          - "QueueName"

KinesisStreamFileQueue:
  Type: AWS::SQS::Queue
  Properties:
    QueueName: "StreamQueue"
4

2 回答 2

1

我通过更改Dimensions properties警报资源解决了这个问题。资源需要引用arn队列的,之前是获取队列url

Dimensions:
    - Name: QueueName
      Value: { "Fn::GetAtt": [ "KinesisStreamFileQueue", "QueueName"] }
于 2018-12-14T21:55:36.073 回答
0

使用ApproximateNumberOfMessagesVisible指标而不是任何“已接收”指标。

使用“已接收”指标的缺点是,除非您不断收到消息,否则您很可能会卡在 中INSUFFICIENT_DATA,从而导致警报问题。

于 2018-12-14T21:20:04.727 回答