2016-07-27 26 views
1

Wir haben träge Lieferzeiten in einer Datenpipeline, die eine SQS-Warteschlange enthält. Ich möchte also wissen, wie viel Zeit die Nachrichten im SQS-Bit verbringen.Gibt es eine Möglichkeit, die durchschnittliche Servicezeit einer SQS-Warteschlange zu erhalten?

Cloudwatch mich nur nicht so nützlich Lehren gibt:

ApproximateNumberOfMessagesNotVisible 
ApproximateNumberOfMessagesVisible 
NumberOfEmptyReceives 
NumberOfMessagesDeleted 
NumberOfMessagesReceived 
NumberOfMessagesSent 
SentMessageSize 

Derzeit gibt es keine Staus, ist die Warteschlange 99,99% der Zeit leer, aber es ist keine Garantie, dass jede Nachricht in der Warteschlange eine kleine Zeit damit verbringt, .

Gibt es eine erweiterte Metrikoption oder ein externes Tool oder eine Scala/Java-Bibliothek, um Tconsume-Tproduce jeder Nachrichten-ID zu messen?

Antwort

1

Es gibt keine Fortschrittsmetrik, die Ihnen diese Informationen liefert.

Sie müssen Logik hinzufügen, um diese Metriken bei der Verarbeitung einer Nachricht zu protokollieren. In einer sqs-Nachricht gibt es zusätzliche Attribute, mit denen Sie den Zeitaufwand für die Nachricht in der Warteschlange vor dem Löschen berechnen können.

Mit den Attributen CreatedTimestamp, LastModifiedTimestamp für die Nachricht können Sie die Metrik protokollieren. Sie müssen diese Metrik dann aggregieren.

+0

Ich fand nur Verweise auf diese Attribute in Bezug auf die Warteschlange, nicht auf jede Nachricht. http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html Ich brauche diese Zeitstempel für jede Nachricht, um die beschriebene Metrik zu berechnen. – sscarduzio

+0

Warte, du hattest Recht, ich habe meine Antwort hier gefunden: http://stackoverflow.com/questions/25107605/amazon-sqs-java-sdk-cannot-receive-message-attributes – sscarduzio

+0

Die Java-Dokumentation für die API-Liste alle die Attribute, die Sie abrufen können.http: //docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/sqs/model/ReceiveMessageRequest.html#withAttributeNames-com.amazonaws.services.sqs.model. QueueAttributeName ...- – Shibashis

-1

So passen Sie die Zeit einer SQS-Warteschlange für die Benachrichtigung in Ruby on Rails an.