Quick answer:
Only metric which you can really monitor on SQS DLQ is ApproximateNumberOfMessagesVisible
.
TLDR:
When new message arrives to SQS DLQ neither NumberOfMessagesSent
or NumberOfMessagesReceived
is increased.
Citation from AWS Documentation:
If you send a message to a dead-letter queue manually, it is captured
by the NumberOfMessagesSent metric. However, if a message is sent to a
dead-letter queue as a result of a failed processing attempt, it isn't
captured by this metric. Thus, it is possible for the values of
NumberOfMessagesSent and NumberOfMessagesReceived to be different.
NumberOfMessagesSent
means:
How many of messages you have sent to the queue (except messages which arrived to DLQ as result of failure)
NumberOfMessagesReceived
means:
How many of messages you have received from the queue
ApproximateNumberOfMessagesVisible
means:
Total number or messages, which are visible in the queue. (Remember when you receive message from the queue you have to set visibility timeout == how long message you have received is not visible for others. Also remember you should delete message after successful processing, otherwise it will be after visibility timeout available to others.)