正确计算发送到死信 SQS 队列的消息数

ste*_*web 2 monitoring amazon-sqs amazon-web-services grafana

我希望 grafana 在任何给定时间报告死信队列中有多少消息。由于消息在此队列中结束的性质,因此将对在此队列中结束的消息进行评估和解析。

我已将 grafana 配置为NumberOfMessagesSentdead-letter队列中读取,但是,该值始终为0,因为;我认为最终到达这里的消息是从另一个队列(通过 SQS)发送的。

即使我可以看到消息已发送到dead-letter队列(不是以编程方式),但是由另一个在 X 次接收后配置的队列发送。

NumberOfMessagesSent 的 grafana 配置

这个问题有方法解决吗?

Dav*_*kal 7

快速回答:

您可以在 SQS DLQ 上真正监控的唯一指标是ApproximateNumberOfMessagesVisible.

域名注册地址:

当新邮件到达时SQS DLQ既不NumberOfMessagesSentNumberOfMessagesReceived增加。AWS 文档中的引用:

如果您手动将消息发送到死信队列,则它会被 NumberOfMessagesSent 指标捕获。但是,如果由于处理尝试失败而将消息发送到死信队列,则该指标不会捕获该消息。因此,NumberOfMessagesSent 和NumberOfMessagesReceived 的值可能不同。

NumberOfMessagesSent 方法:

您已发送到队列的消息数量(由于失败而到达 DLQ 的消息除外)

NumberOfMessagesReceived 方法:

您从队列中收到了多少条消息

ApproximateNumberOfMessagesVisible 方法:

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.)