0

SQS 대기열에서 7 일간 트래픽을 수신하지 않은 경우 알림 기능이있는 CloudWatch 알람을 설정하는 방법이 있는지 궁금합니다. 현재 일주일에 한 번 내 SQS 대기열에 메시지를 추가하는 작업을 수행하는 작업이 있습니다. 작업이 실행되지 않는 경우 이미 경고하는 방법이 있습니다. 그러나 어떤 이유로 든 알람을 보내고 싶습니다. 작업이 실행되지만 대기열에 메시지를 보내지 않습니다. 설정 가능한 가장 긴 경보 기간은 1 일입니다. 내가 찾는 것을 할 수있는 알람을 만드는 또 다른 방법이 있습니까?AWS CloudWatch Zero 대기열 크기 (1 주일)

편집 : 내 작업이 일주일에 한 번 실행되므로 매 7 일마다 메트릭을 모니터링하는 알람이있는 방법이 있으므로 24 시간 내에 트래픽이 대기열에 있는지 확인하십시오. 그 사이에있는 6 일간의 시야가 더 정확하게 보입니다. 그 날 7 일에 교통량 만 있다는 것을 예상하거나 걱정하지 않습니다.

+0

대기열이 몇 시간 이상 완전히 비활성 상태 인 경우 SQS는 일종의 대기 모드로 설정하고 CloudWatch에 통계를 보내지 않습니다. 따라서 실제로 해결해야 할 두 가지 문제가있을 수 있습니다. –

+0

@ Michael-sqlbot - CloudWatch Alarms를 사용하여 누락 된 데이터를 처리하는 방법을 선택할 수 있습니다. 당신은 그것을 (임계 값을 위반 한) 나쁜 것으로 취급하거나, 위반하지 않고 그냥 무시할 수 있습니다 : https://aws.amazon.com/about-aws/whats-new/2017/03/cloudwatch-alarms-releases- 두 가지 새로운 알람 구성 설정/ – Tartaglia

+0

@ Tartaglia brilliant. 이걸 내 관심을 가져 주셔서 감사합니다. –

답변

0

CloudWatch 경보는 period * number_of_datapoints_to_watch이 24 시간 미만이어야한다는 제한을 설정합니다. 내가 아는 한, 그 주위에는 방법이 없습니다.

원하는 동작을 얻으려면 마지막 활동 인 이래로 일을 계산하여이를 사용자 지정 메트릭으로 게시하고이를 경고하십시오. 이 것 할

한 가지 방법 :

  1. 는 람다 함수를 만들고, 예를 들어 매 시간마다 트리거했다.
  2. 람다에서 모니터링 할 SQS 메트릭에 대해 CloudWatch GetMetricStatistics를 호출하십시오.
  3. 0보다 큰 값을 가진 최신 데이터 포인트를 가져 와서 데이터 포인트의 현재 시간과 현재 시간의 차이를 계산하십시오.
  4. CloudWatch PutMetricData를 사용하여이 값을 새 측정 항목 days-since-last-activity에 게시하십시오.
  5. 이제 새로운 측정 항목의 값이 7 일 이상 경과하면 경고 할 수 있습니다.