정전 통신과 마찬가지로 기술이 아닌 독자도 주로 다음을 이해하려고합니다.
Amazon CloudWatch 지표는 이러한 질문에 대한 답변을 제공 할 수있는 SQS 대기열에 대한 다음 지표를 제공합니다 .
- NumberOfMessagesSent : 큐에 추가 된 메시지 수.
- NumberOfMessagesReceived : ReceiveMessage API 조치를 호출하여 리턴 된 메시지 수입니다.
- ApproximateNumberOfMessagesVisible : 큐에서 검색 할 수있는 메시지 수입니다.
올바르게 그래프로 표시하면 이러한 메트릭은 큐 처리 지연을 설명하는 데 유용한 시각적 보조 장치가 될 수 있습니다. 다음은 대기열 메시지를 처리하는 작업 용량이 심각하게 저하 된 정전에서 몇 가지 예입니다.
NumberOfMessagesSent & NumberOfMessagesReceived
- 그래프 유형 : 선 그래프
- 통계 : 합계
- 기간 : 5 분
이 메시지는 송수신 된 메시지 간의 대비를 그래프로 표시하여 지연을 담당하는 처리 구성 요소를 분리하는 데 도움이됩니다. 이 그래프에서, 수신 된 메트릭은 정상 추세를 계속 유지하면서 수신 메트릭이 급격히 떨어 지므로 문제는 큐 쓰기 구성 요소 대신 큐 읽기 구성 요소에 있다고 추론 할 수 있습니다.
이것은 얼마나 오래 / 얼마나 나쁜 이벤트인지에 대한 대답입니까? 예; 시간이 지남에 따라 영향을받는 프로세스를 설명합니다.
수신 된 NumberOfMessages 및 대략적인 NumberOfMessages
- 그래프 유형 : 누적 영역 그래프
- 통계 : 합계
- 기간 : 5 분
이 메시지는 수신 된 메시지 위에 큐 용량을 그래프로 표시하여 큐가 얼마나 멀리 백업되었으며 복구 방법을 표시합니다. 이 그래프에서 큐 읽기 구성 요소에 문제가있는 동안 큐 깊이가 극적으로 백업되었으며 큐 읽기 구성 요소가 메시지를 다시 읽기 시작할 때 복구가 시작되었음을 알 수 있습니다.
이것은 얼마나 오래 / 얼마나 나쁜 이벤트인지에 대한 대답입니까? 예; 시간이 지남에 영향을받는 메시지를 설명합니다.
그래프 토론
두 그래프 모두 대기열 처리는 일반적으로 선이 겹칠 때 정상으로, 선이 분기 될 때 비정상으로 간주 될 수 있습니다. 이것은 기술이 아닌 팀원에게 가르치기 쉬운 패턴이며, 이러한 그래프와 함께 표시 될 때 문제가있는 위치와 방법을 신속하게 해체하는 데 도움이 될 수 있습니다.
그래프에서 특정 지점을 추가로 전달하려면 간단히 주석을 달 수 있습니다.
그래프 팁 :
- 단위 및 축 레이블을 지정하십시오.
- 그래프 전체에서 메트릭을 일치시키기 위해 일관된 색상을 사용하십시오. NumberOfMessagesReceived는 두 그래프에서 모두 주황색입니다. 이를 통해 여러 그래프에서 동일한 측정 항목을 시각화 할 수 있습니다.
- 시간이 지남에 따라 비교하기 쉽도록 유사한 메트릭을 나타내는 그래프를 세로로 정렬합니다.
참고 : StackExchange에 표시 할 수 있도록 이러한 그래프의 형식을 지정 했으므로 이러한 그래프가 반드시 중단 후 사후에 표시되는 것은 아닙니다. 여기에서 왼쪽 축에서 값을 명시 적으로 제거하여 StackExchange에서 값을 숨겼습니다. 당신은 그것들을 당신의 사후에 보관하고 싶을 것입니다.
추가 팁
- 팀 역량 강화 : 팀원들에게이 그래프를 읽도록 훈련시킨 후에 숨길 이유가 없습니다. CloudWatch 대시 보드를 설정하고 비 기술적 인 팀 구성원 에게 CloudWatch에 대한 읽기 전용 IAM 액세스 권한을 부여하여 언제든지 이러한 그래프를 볼 수 있도록하십시오.
- 알림 설정 : ApproximateNumberOfMessagesVisible 지표가 합의 된 높은 값을 초과하는 경우 Cloudwatch 경보 설정을 고려 하고 팀 구성원을 구독하여 잠재적 인 문제를 통지하십시오. Cloudwatch 경보에는 알림 이메일과 함께 전송되는 설명 필드가 있습니다. 기술이 아닌 구성원이 경보를 전파 할 수 있도록 사람이 읽을 수있는 설명을 포함해야합니다.
- : 다른 데이터 탐색을 당 예브게니의 의견을 , CloudWatch를 제공하는 것 이상의 다른 데이터를 탐색하고 당신이 당신의 팀에 데이터를 전달할 수있는 방법에 대해 생각합니다. 큐에서 메시지 수명을 사용하여 히스토그램을 작성하는 그의 예제는 이러한 창의적 사고의 좋은 예이며, 메시지 전송 및 메시지 수신 시간을 애플리케이션에 기록하여 수행 할 수 있습니다. ReceiveMessage API 응답의 각 큐 메시지 에서 SentTimeStamp 속성을 통해 Sent Timestamp 메시지를 가져올 수 있습니다 . 자세한 내용은 여기를 참조 하십시오 .