Может ли кто-нибудь помочь мне понять, как cloudwatch отслеживает метрику очереди SQS c и генерирует сигнал тревоги?
У нас есть сценарий использования для запуска тревоги, когда какое-либо сообщение в очереди SQS «слишком старое» ", ie ApproximateAgeOfOldestMessage> = threshold.
Вот часть нашего шаблона облачной информации для него.
MetricName: ApproximateAgeOfOldestMessage
Dimensions:
- Name: "QueueName"
Value: !Sub the-queue
Statistic: Maximum
Period: 2700 //45min
EvaluationPeriods: 1
DatapointsToAlarm: 1
Threshold: 2100 //35min
ComparisonOperator: GreaterThanOrEqualToThreshold
Во время тестирования # 1 у меня было одно сообщение в очереди в нулевое время и не позаботился до, после 45 минут. И, как и ожидалось, сработал сигнал тревоги.
В тесте № 2 в очереди было одно сообщение в нулевой момент времени, которое не затрагивалось до 39 минут, а затем было удалено из очереди. На 45-й минуте в очереди не было ни одного сообщения. Тогда тревога не сработала.
Мой вопрос на самом деле о том, почему # 2 не вызовет тревогу или как создаются и контролируются точки данных в моей конкретной конфигурации. Насколько я понимаю, aws sqs будет отправлять sh одну точку данных метри c в облачные часы каждую 1 минуту. Поскольку я настроил будильник для проверки максимального значения ApproximateAgeOfOldestMessage в течение 45 минут, cloudwatch должен проверить 45 точек данных и выбрать самую большую из них. В этом случае № 2 вызовет тревогу. Что мне здесь не хватает? Пожалуйста помоги. Спасибо.