비 기술적 인 팀원에게 큐 기반 처리 지연을 알리는 방법


13

ApproximateNumberOfMessagesVisibleCloudWatch 지표 에 대한 조정 정책을 사용하여 일련의 SQS 대기열 처리 작업을 담당합니다 . 이러한 작업은 여러 가지 이유로 전송 된 메시지 양을 따라 가지 못할 수 있습니다.

  • 서비스 저하는 처리 할 수있는 메시지 용량을 줄입니다.
  • AutoScaling 큐 용량이 계속 증가하는 동안 최대 한계에 도달했습니다.
  • S3 중단 AutoScaling은 대기열 처리 작업이 수요를 맞추기 위해 사용하는 다른 종속 AWS 서비스 ( 서비스)에 영향을줍니다 .

기술적이지 않은 팀 구성원과의 중단에 대해 논의 할 때 고객이 볼 수있는 성능 저하로 이어질 수있는 대기열 처리의 특정 지연을 알리고 싶습니다. SQS 대기열로 어떻게 할 수 있습니까?

답변:


15

정전 통신과 마찬가지로 기술이 아닌 독자도 주로 다음을 이해하려고합니다.

  • 얼마나 되었습니까?
  • 얼마나 나빴어?

Amazon CloudWatch 지표는 이러한 질문에 대한 답변을 제공 할 수있는 SQS 대기열에 대한 다음 지표를 제공합니다 .

  • NumberOfMessagesSent : 큐에 추가 된 메시지 수.
  • NumberOfMessagesReceived : ReceiveMessage API 조치를 호출하여 리턴 된 메시지 수입니다.
  • ApproximateNumberOfMessagesVisible : 큐에서 검색 할 수있는 메시지 수입니다.

올바르게 그래프로 표시하면 이러한 메트릭은 큐 처리 지연을 설명하는 데 유용한 시각적 보조 장치가 될 수 있습니다. 다음은 대기열 메시지를 처리하는 작업 용량이 심각하게 저하 된 정전에서 몇 가지 예입니다.

NumberOfMessagesSent & NumberOfMessagesReceived

  • 그래프 유형 : 선 그래프
  • 통계 : 합계
  • 기간 : 5 분

NumberOfMessagesSent & NumberOfMessagesReceived

이 메시지는 송수신 된 메시지 간의 대비를 그래프로 표시하여 지연을 담당하는 처리 구성 요소를 분리하는 데 도움이됩니다. 이 그래프에서, 수신 된 메트릭은 정상 추세를 계속 유지하면서 수신 메트릭이 급격히 떨어 지므로 문제는 큐 쓰기 구성 요소 대신 큐 읽기 구성 요소에 있다고 추론 할 수 있습니다.

이것은 얼마나 오래 / 얼마나 나쁜 이벤트인지에 대한 대답입니까? 예; 시간이 지남에 따라 영향을받는 프로세스를 설명합니다.

수신 된 NumberOfMessages 및 대략적인 NumberOfMessages

  • 그래프 유형 : 누적 영역 그래프
  • 통계 : 합계
  • 기간 : 5 분

수신 된 NumberOfMessages 및 대략적인 NumberOfMessages

이 메시지는 수신 된 메시지 위에 큐 용량을 그래프로 표시하여 큐가 얼마나 멀리 백업되었으며 복구 방법을 표시합니다. 이 그래프에서 큐 읽기 구성 요소에 문제가있는 동안 큐 깊이가 극적으로 백업되었으며 큐 읽기 구성 요소가 메시지를 다시 읽기 시작할 때 복구가 시작되었음을 알 수 있습니다.

이것은 얼마나 오래 / 얼마나 나쁜 이벤트인지에 대한 대답입니까? 예; 시간이 지남에 영향을받는 메시지를 설명합니다.


그래프 토론

두 그래프 모두 대기열 처리는 일반적으로 선이 겹칠 때 정상으로, 선이 분기 될 때 비정상으로 간주 될 수 있습니다. 이것은 기술이 아닌 팀원에게 가르치기 쉬운 패턴이며, 이러한 그래프와 함께 표시 될 때 문제가있는 위치와 방법을 신속하게 해체하는 데 도움이 될 수 있습니다.

그래프에서 특정 지점을 추가로 전달하려면 간단히 주석을 달 수 있습니다.

주석이있는 이전 그래프

그래프 팁 :

  • 단위 및 축 레이블을 지정하십시오.
  • 그래프 전체에서 메트릭을 일치시키기 위해 일관된 색상을 사용하십시오. NumberOfMessagesReceived는 두 그래프에서 모두 주황색입니다. 이를 통해 여러 그래프에서 동일한 측정 항목을 시각화 할 수 있습니다.
  • 시간이 지남에 따라 비교하기 쉽도록 유사한 메트릭을 나타내는 그래프를 세로로 정렬합니다.

참고 : StackExchange에 표시 할 수 있도록 이러한 그래프의 형식을 지정 했으므로 이러한 그래프가 반드시 중단 후 사후에 표시되는 것은 아닙니다. 여기에서 왼쪽 축에서 값을 명시 적으로 제거하여 StackExchange에서 값을 숨겼습니다. 당신은 그것들을 당신의 사후에 보관하고 싶을 것입니다.


추가 팁

  • 팀 역량 강화 : 팀원들에게이 그래프를 읽도록 훈련시킨 후에 숨길 이유가 없습니다. CloudWatch 대시 보드를 설정하고 비 기술적 인 팀 구성원 에게 CloudWatch에 대한 읽기 전용 IAM 액세스 권한을 부여하여 언제든지 이러한 그래프를 볼 수 있도록하십시오.
  • 알림 설정 : ApproximateNumberOfMessagesVisible 지표가 합의 된 높은 값을 초과하는 경우 Cloudwatch 경보 설정을 고려 하고 팀 구성원을 구독하여 잠재적 인 문제를 통지하십시오. Cloudwatch 경보에는 알림 이메일과 함께 전송되는 설명 필드가 있습니다. 기술이 아닌 구성원이 경보를 전파 할 수 있도록 사람이 읽을 수있는 설명을 포함해야합니다.
  • : 다른 데이터 탐색을예브게니의 의견을 , CloudWatch를 제공하는 것 이상의 다른 데이터를 탐색하고 당신이 당신의 팀에 데이터를 전달할 수있는 방법에 대해 생각합니다. 큐에서 메시지 수명을 사용하여 히스토그램을 작성하는 그의 예제는 이러한 창의적 사고의 좋은 예이며, 메시지 전송 및 메시지 수신 시간을 애플리케이션에 기록하여 수행 할 수 있습니다. ReceiveMessage API 응답의 각 큐 메시지 에서 SentTimeStamp 속성을 통해 Sent Timestamp 메시지를 가져올 수 있습니다 . 자세한 내용은 여기를 참조 하십시오 .

1
CloudWatch에서 제공하는 데이터뿐만 아니라 다른 관점의 데이터를 보는 것도 매우 유용합니다. 예를 들어, 각 메시지가 대기열에 머무르는 시간 의 히스토그램을 표시하여 일부 메시지는 X 시간 동안 유지되고 다른 메시지는 X * 2 시간 동안 유지됨을 보여줍니다. 그리고 중단 중에 히스토그램은 높은 점을 X * 4 또는 매우 강력하게 볼 수 있습니다.
Evgeny

4
또한 말하기를 원합니다. 이것은 절대적으로 놀라운 답변입니다.
Evgeny

감사합니다 @Evgeny! 그것은 좋은 생각이며, 나는 당신의 의견에 근거하여 답변에 또 다른 팁을 추가했습니다.
Anthony Neace
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.