Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 正确计算发送到死信SQS队列的消息数_Amazon Web Services_Monitoring_Amazon Sqs_Grafana - Fatal编程技术网

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

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

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

我已将grafana配置为从死信队列中读取
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并没有被归类为“添加到队列”?看起来是这样的。