0

SQSキューが7日間トラフィックを受信しなかった場合に警告するCloudWatchアラームを設定する方法があるかどうかは疑問です。私は現在、週に一度、私のSQSキューにメッセージを追加することが保証されているホスト上で実行されているジョブを持っている、私はすでにジョブが実行されていない場合警告する方法がありますが、ジョブは実行されますが、キューにメッセージは送信されません。あなたが設定できる最も長いアラーム時間は1日であると私は理解しています。私が探していることをするアラームを作成する別の方法はありますか?AWS CloudWatch Zero Queue Size One Weekアラーム

編集: 私の仕事は1週間に1回しか実行されないため、7日ごとにメトリックを監視し、24時間以内にトラフィックがキューに到達したかどうかを確認する方法がありますか?これは、その7日目にトラフィックがあるだけのトラフィックがあるかどうか、私は期待していない、または気にしない間の6日間のことをより正確に見ています。

+0

キューが数時間以上完全に非アクティブである場合、SQSはそれをスリープモードの一種に入れ、CloudWatchへの統計の送信を停止します。だから実際には解決すべき2つの問題があるかもしれません。 –

+0

@ Michael-sqlbot - CloudWatchアラームを使用すると、不足しているデータの処理方法を選択できるようになりました。あなたはそれを悪い(スレッシュホールドを破る)、良い(違反しない)、それを無視するだけです:https://aws.amazon.com/about-aws/whats-new/2017/03/cloudwatch-alarms-releases- 2つの新しいアラーム設定の設定/ – 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日を超えたときにアラームを発することができます。