Тревога AWS CloudWatch не сработала для метрик SQS "NumberOfMessagesReceived"

Я пытаюсь вызвать тревогу, если сообщение отправлено SQS, Тем не менее, я вижу, что CloudWatch Метрика показывает, что было сообщение, но не сработало предупреждение.

Тревога в настоящее время в INSUFFICIENT_DATA состояние также. Для тестирования я отправляю сообщение через boto3 клиент.

Ниже мой шаблон CloudFormation для SQS а также CloudWatch тревога

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"

2 ответа

Решение

Я выяснил проблему, изменив Dimensionsproperties для ресурса тревоги. Ресурс должен ссылаться на arn очереди, и это было ранее получение url из этого

Dimensions:
    - Name: QueueName
      Value: { "Fn::GetAtt": [ "KinesisStreamFileQueue", "QueueName"] }

Используйте метрику ApproximateNumberOfMessagesVisible вместо любой метрики "Получено".

Недостатком использования метрик "Получено" является то, что если вы постоянно не получаете сообщения, вы, вероятно, застрянете в INSUFFICIENT_DATA, что приводит к проблемам тревоги.

Другие вопросы по тегам