Сконфигурируйте очередь недоставленных сообщений SQS, чтобы поднять тревогу наблюдения за облаком при получении сообщения - PullRequest
0 голосов
/ 13 февраля 2020

Я работал с Dead Letter Queue в Amazon SQS. Я хочу, чтобы всякий раз, когда новое сообщение получалось в очереди, оно должно вызывать тревогу CloudWatch. Проблема в том, что я настроил тревогу в метрике c: number_of_messages_sent очереди, но этот метри c не работает должным образом в случае очереди недоставленных сообщений, как указано в Dead-Letter Amazon SQS Очереди - Amazon Simple Queue Service документация.

Теперь некоторые предложения по этому поводу были использованы number_of_messages_visible, но я не уверен, как настроить это при тревоге. Так что, если я установлю это значение metric>0, это не то же самое, что получить новое сообщение в очереди. Если есть старое сообщение, тогда значение metri c всегда будет >0. Я могу сделать какое-то математическое выражение, чтобы получить дельту в этом метри c в течение некоторого определенного периода (скажем, минуты), но я ищу какое-то лучшее решение.

1 Ответ

0 голосов
/ 13 февраля 2020

Что вы можете сделать, это создать лямбду с источником события в качестве вашего DLQ. А из Lambda вы можете публиковать пользовательские данные metri c в CloudWatch. Будильник будет срабатывать, когда ваши данные соответствуют условиям.

Используйте эту ссылку для настройки лямбды таким образом, чтобы она запускалась при отправке сообщения на ваш DLQ: Использование AWS Лямбда с Amazon SQS - AWS Лямбда

Вот хорошее объяснение с кодом, который предлагает, как мы можем публиковать пользовательские метрики из Lambda в CloudWatch: Отправка пользовательских метрик CloudWatch из Lambda с примерами кода

После публикации метрик CloudWatch Будильник сработает, так как будет соответствовать метрике.

...