首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >正确计算发送到死信SQS队列的消息数

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

Stack Overflow用户
提问于 2019-05-23 20:06:54
回答 2查看 1.7K关注 0票数 2

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

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

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

对此有解决方案吗?

EN

回答 2

Stack Overflow用户

发布于 2020-03-09 21:40:45

快速回答:

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

TLDR:

当新消息到达SQS DLQ时,NumberOfMessagesSentNumberOfMessagesReceived都不会增加。引用自AWS Documentation

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

NumberOfMessagesSent的意思是:

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

NumberOfMessagesReceived的意思是:

您从队列中收到的消息数量

ApproximateNumberOfMessagesVisible的意思是:

队列中可见的消息总数或消息总数。(请记住,当您从队列接收消息时,您必须设置visibility timeout ==,您收到的消息对其他人是不可见的。还要记住,您应该在成功处理之后删除消息,否则其他人将在可见性超时之后删除消息。)

票数 9
EN

Stack Overflow用户

发布于 2020-07-02 07:25:05

正如David Navrkal所提到的,因为NumberOfMessagesReceived和NumberOfMessagesSent的指标依赖于消息的排队方式,所以我使用指标ApproximateNumberOfMessagesDelayed为我们的需求设计了一个新的解决方案。在dlq设置中,我添加了使用此度量的延迟。

例如: DelaySeconds: 60 #用于报警

有关yaml,请参阅Configure SQS Dead letter Queue to raise a cloud watch alarm on receiving a message

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56274863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档