Amazon web services 正确计算发送到死信SQS队列的消息数
我希望grafana报告在任何给定时间死信队列中有多少条消息。由于在该队列中结束的消息的性质,将对此队列中结束的消息进行计算和分析 我已将grafana配置为从死信队列中读取Amazon web services 正确计算发送到死信SQS队列的消息数,amazon-web-services,monitoring,amazon-sqs,grafana,Amazon Web Services,Monitoring,Amazon Sqs,Grafana,我希望grafana报告在任何给定时间死信队列中有多少条消息。由于在该队列中结束的消息的性质,将对此队列中结束的消息进行计算和分析 我已将grafana配置为从死信队列中读取NumberOfMessagesSent,但是,该值始终为0,因为;我认为到达这里的消息是从另一个队列(通过SQS)发送的 尽管我可以看到消息已被发送到死信队列(不是程序性的),但另一个队列是在X次接收后配置的 有解决方法吗?快速回答: 您可以在SQS DLQ上真正监视的唯一度量是近似EnumberOfMessagesVi
NumberOfMessagesSent
,但是,该值始终为0
,因为;我认为到达这里的消息是从另一个队列(通过SQS)发送的
尽管我可以看到消息已被发送到死信
队列(不是程序性的),但另一个队列是在X次接收后配置的
有解决方法吗?快速回答:
您可以在SQS DLQ上真正监视的唯一度量是近似EnumberOfMessagesVisible
TLDR:
当新消息到达SQS DLQ时,NumberOfMessagesSent
或NumberOfMessagesReceived
都不会增加。
引用自:
如果手动将消息发送到死信队列,则会捕获该消息
通过NumberOfMessagesSent度量。但是,如果将消息发送到
由于处理尝试失败而导致死信队列,它不是
由这个指标捕获。因此,可以将
NumberOfMessageSent和NumberOfMessages被认为是不同的
numberofmessagesent
表示:
您已发送到队列的消息数(由于失败而到达DLQ的消息除外)
NumberOfMessagesReceived
表示:
您已从队列中收到多少条消息
approximateEnumberOfMessagesVisible
表示:
队列中可见的消息总数。(请记住,当您从队列中接收消息时,您必须设置可见性超时==您接收的消息对其他人不可见的时间长度。还请记住,您应该在成功处理后删除消息,否则在可见性超时后,其他人将可以使用该消息。)
由于NumberOfMessagesReceived和NumberOfMessagesSent的度量值取决于消息的排队方式,正如David Navrkal所提到的,因此我已经设计了一种新的解决方案来满足我们的需求,使用度量值EnumberOfMessagesDelayed。在dlq设置中,我添加了使用此度量的延迟 ie:DelaySeconds:60#用于报警
有关yaml,请参见。有趣!CloudWatch将
NumberOfMessagesSent
定义为“添加到队列中的消息数”。我猜移动到DLQ并没有被归类为“添加到队列”?看起来是这样的。