2016-07-27 4 views
1

SQS 큐를 포함하는 데이터 파이프 라인에서 배달 시간이 느립니다. 그래서 메시지가 SQS 비트에서 소비하는 시간을 알고 싶습니다.SQS 대기열의 평균 서비스 시간을 갖는 방법이 있습니까?

CloudWatch를 만 나에게 그리 유용 게이지 제공 :

ApproximateNumberOfMessagesNotVisible 
ApproximateNumberOfMessagesVisible 
NumberOfEmptyReceives 
NumberOfMessagesDeleted 
NumberOfMessagesReceived 
NumberOfMessagesSent 
SentMessageSize 

현재 혼잡이 없기를, 큐 시간의 99.99 % 비어 있지만, 각 메시지가 큐에 작은 시간을 보낸다 보증이 아니다 .

각 메시지 ID의 Tconsume-Tproduce을 측정하기위한 고급 메트릭 옵션이나 외부 도구 또는 Scala/Java 라이브러리가 있습니까?

답변

1

이 정보를 제공 할 사전 통계는 없습니다.

메시지를 처리 ​​할 때 이러한 메트릭을 기록하려면 논리를 추가해야합니다. sqs 메시지에는 삭제 전 대기열에서 메시지가 소비 한 시간을 계산하는 데 도움이되는 추가 속성이 있습니다.

메시지의 CreatedTimestamp, LastModifiedTimestamp 특성을 사용하면 메트릭을 기록 할 수 있으므로 이러한 메트릭을 집계해야합니다.

+0

각 메시지가 아니라 큐에 참조 된 속성에 대한 참조 만 발견했습니다. http://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_GetQueueAttributes.html 설명 된 측정 항목을 계산할 때 각 메시지에 해당 타임 스탬프가 필요합니다. – sscarduzio

+0

잠깐, 당신이 옳았다 어떻게 든, 내 대답은 여기에 발견 : http://stackoverflow.com/questions/25107605/amazon-sqs-java-sdk-cannot-receive-message-attributes – sscarduzio

+0

API 목록에 대한 자바 문서 모두 fetch 할 수있는 속성 .http : //docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/sqs/model/ReceiveMessageRequest.html#withAttributeNames-com.amazonaws.services.sqs.model. QueueAttributeName ...- – Shibashis

-1

ruby ​​on rail에서 알림을위한 SQS 큐의 시간을 사용자 정의하는 방법.