Amazon SQS의 CloudWatch 지표 액세스
Amazon SQS는 CloudWatch에 다음 지표를 전송합니다.
참고
일부 지표의 경우, Amazon SQS의 분산 아키텍처로 인해 그 결과는 거의 비슷합니다. 대부분의 경우 그 수는 대기열에 있는 메시지의 실제 개수에 근접해야 합니다.
Amazon SQS 지표
Amazon SQS는 Amazon CloudWatch의 AWS/SQS 네임스페이스 아래에 운영 지표를 자동으로 게시합니다. 이러한 지표는 대기열 상태 및 성능을 모니터링하는 데 도움이 됩니다. SQS의 분산된 특성으로 인해 많은 값이 근사치이지만 대부분의 운영 결정에 사용하기에 충분히 정확합니다.
참고
-
모든 지표는 대기열이 활성화된 경우에만 음수가 아닌 값을 내보냅니다.
-
일부 지표(예:
SentMessageSize)는 최소 하나의 메시지가 전송될 때까지 내보내지지 않습니다.
| 지표 | 설명 | 단위 | 보고 동작 | 주요 참고 사항 |
|---|---|---|---|---|
ApproximateAgeOfOldestMessage |
대기열에서 처리되지 않은 가장 오래된 메시지의 수명입니다. | 초 |
대기열에 최소 하나의 활성 메시지가 포함된 경우 보고됩니다. |
|
ApproximateNumberOfGroupsWithInflightMessages |
FIFO에만 해당합니다. 하나 이상의 진행 중인 메시지가 있는 메시지 그룹의 수입니다. | 개수 |
FIFO 대기열이 활성 상태인 경우 보고됩니다. |
|
ApproximateNumberOfMessagesDelayed |
대기열에서 지연되어 즉시 검색할 수 없는 메시지 수입니다. |
개수 |
지연된 메시지가 대기열에 있는 경우 보고됩니다. |
|
ApproximateNumberOfMessagesNotVisible |
수신되었지만 아직 삭제되거나 만료되지 않은 진행 중 메시지 수입니다. | 개수 |
진행 중 메시지가 있는 경우 보고됩니다. |
|
ApproximateNumberOfMessagesVisible |
현재 검색 및 처리에 사용할 수 있는 메시지 수입니다. | 개수 |
대기열이 활성 상태인 경우 보고됩니다. |
|
NumberOfEmptyReceives¹ |
메시지를 반환하지 않은 ReceiveMessage API 직접 호출 수입니다. | 개수 |
수신 작업 중에 보고됩니다. |
|
NumberOfDeduplicatedSentMessages |
FIFO에만 해당합니다. 중복 제거되고 대기열에 추가되지 않은 전송된 메시지의 수입니다. | 개수 |
중복 MessageDeduplicationId 값 또는 콘텐츠가 감지되면 보고됩니다. |
|
NumberOfMessagesDeleted¹ |
대기열에서 성공적으로 삭제된 메시지의 수입니다. |
개수 |
유효한 수신 핸들을 사용하여 각 삭제 요청에 대해 보고됩니다. |
|
NumberOfMessagesReceived¹ |
ReceiveMessage API에서 반환한 메시지 수입니다. | 개수 |
수신 작업 중에 보고됩니다. |
|
NumberOfMessagesSent¹ |
대기열에 성공적으로 추가된 메시지의 수입니다. | 개수 |
성공한 각 수동 전송에 대해 보고됩니다. |
|
SentMessageSize¹ |
대기열로 성공적으로 전송된 메시지의 크기입니다. |
바이트 |
최소 하나의 메시지가 전송될 때까지 내보내지지 않습니다. |
|
ApproximateNumberOfNoisyGroups |
공정 대기열에서 노이즈가 있는 것으로 간주되는 메시지 그룹의 수입니다. 노이즈가 있는 메시지 그룹은 멀티 테넌트 대기열의 노이즈가 있는 이웃 테넌트를 나타냅니다. |
개수 |
대기열이 활성화된 경우 음수가 아닌 값이 보고됩니다. |
|
ApproximateNumberOfMessagesVisibleInQuietGroups |
노이즈가 있는 메시지 그룹의 메시지를 제외하고 표시되는 메시지 수입니다. |
개수 |
대기열이 활성화된 경우 음수가 아닌 값이 보고됩니다. |
|
ApproximateNumberOfMessagesNotVisibleInQuietGroups |
노이즈가 있는 메시지 그룹의 메시지를 제외한 진행 중 메시지 수입니다. | 개수 |
대기열이 활성화된 경우 음수가 아닌 값이 보고됩니다. |
|
ApproximateNumberOfMessagesDelayedInQuietGroups |
노이즈가 있는 메시지 그룹의 메시지에서 지연되어 즉시 읽을 수 없는 메시지를 제외한 메시지 수입니다. 대기열이 지연 대기열로 구성되거나 메시지가 지연 파라미터와 함께 전송되었을 때 지연된 메시지가 발생할 수 있습니다. | 개수 |
대기열이 활성화된 경우 음수가 아닌 값이 보고됩니다. |
|
ApproximateAgeOfOldestMessageInQuietGroups |
노이즈가 있는 메시지 그룹의 메시지를 제외하고 대기열에서 삭제되지 않고 가장 오래된 메시지의 수명입니다. | 초 |
대기열이 활성화된 경우 음수가 아닌 값이 보고됩니다. |
|
¹ 이러한 지표는 시스템 수준 활동을 반영하며 재시도, 중복 또는 지연된 메시지를 포함할 수 있습니다. 메시지 수명 주기 동작을 고려하지 않고 원시 개수를 사용하여 실시간 대기열 상태를 추정하지 마세요.
Dead Letter Queue(DLQ) 및 CloudWatch 지표
DLQ 작업 시에는 Amazon SQS 지표가 어떻게 작동하는지 이해하는 것이 중요합니다.
-
NumberOfMessagesSent- 이 지표는 DLQ에서 다르게 작동합니다.-
수동 전송 - DLQ로 수동으로 전송된 메시지는 이 지표로 캡처됩니다.
-
자동 리드라이브 - 처리 실패로 인해 DLQ로 자동 이동한 메시지는 이 지표로 캡처되지 않습니다. 따라서 DLQ에 대해
NumberOfMessagesSent지표와NumberOfMessagesReceived지표가 일치하지 않을 수 있습니다.
-
-
DLQ에 대한 권장 지표 - DLQ의 상태를 모니터링하려면
ApproximateNumberOfMessagesVisible지표를 사용합니다. 이 지표는 DLQ에서 현재 처리할 수 있는 메시지 수를 나타냅니다.
공정 대기열 및 CloudWatch 지표
공정 대기열을 사용하면 Amazon SQS는 다음과 같은 추가 지표를 내보냅니다.
-
ApproximateNumberOfNoisyGroups -
ApproximateNumberOfMessagesVisibleInQuietGroups -
ApproximateNumberOfMessagesNotVisibleInQuietGroups -
ApproximateNumberOfMessagesDelayedInQuietGroups -
ApproximateAgeOfOldestMessageInQuietGroups
참고
각 QuietGroup 지표는 동등한 표준 대기열 수준 Approximate 지표의 하위 집합이지만 노이즈가 있는 이웃 그룹의 메시지는 제외됩니다.
- 노이즈가 있는 그룹
-
노이즈가 있는 메시지 그룹은 멀티 테넌트 대기열의 노이즈가 있는 이웃 테넌트를 나타냅니다.
- 잠잠한 그룹
-
노이즈가 있는 그룹을 제외한 메시지 그룹입니다.
SQS 공정 대기열 동작 관찰
Amazon SQS 공정 대기열의 영향을 모니터링하기 위해 Approximate..InQuietGroups 지표를 표준 대기열 수준 지표와 비교할 수 있습니다. 특정 테넌트에 대한 트래픽이 급증하는 동안 일반적인 대기열 수준 지표에서 백로그 증가 또는 메시지 수명 증가를 나타낼 수 있습니다. 그러나 잠잠한 그룹을 개별적으로 살펴보면 대부분의 노이즈가 없는 메시지 그룹 또는 테넌트가 영향을 받지 않음을 알 수 있고, 영향을 받는 총 메시지 그룹 수의 추정치를 제공할 수 있습니다.
이러한 새로운 지표는 Amazon SQS 공정 대기열 동작에 대해 유용한 개요를 제공하지만 어떤 특정 테넌트가 로드를 유발하는지 이해하면 도움이 될 수 있습니다. Amazon CloudWatch Contributor Insights에서는 상위 N개의 기여자, 총 고유 기여자 수 및 그 사용량에 대한 지표를 볼 수 있습니다. 이는 기존 지표를 내보낼 때 카디널리티(및 비용)가 높은 데이터로 이어질 수 있는 수천 개의 테넌트를 처리하는 시나리오에서 특히 유용합니다.
공정 대기열에 대한 구성 모니터링 예시는 GitHub
Amazon SQS 지표 차원
CloudWatch의 Amazon SQS 지표는 단일 차원인 QueueName을 사용합니다. 모든 지표 데이터는 대기열 이름을 기준으로 그룹화되고 필터링됩니다.
모니터링 팁
주요 지표 및 CloudWatch 경보를 사용하여 SQS를 효과적으로 모니터링하여 대기열 백로그를 감지하고, 성능을 최적화하고, 서비스 한도를 지킵니다.
-
ApproximateNumberOfMessagesVisible을 기반으로 CloudWatch 경보를 설정하여 백로그 증가를 포착합니다. -
NumberOfEmptyReceives를 모니터링하여 폴링 빈도를 조정하고 API 비용을 줄입니다. -
FIFO 대기열에서
ApproximateNumberOfGroupsWithInflightMessages를 사용하여 처리량 한도를 진단합니다. -
SQS 할당량을 검토하여 지표 임곗값 및 서비스 한도를 이해합니다.