以前AWSに問合せた内容をまとめる。
Cloudwatchのアラームが想定より遅延して発生したことから、最大遅延時間はどれほどか調べてみた。
・サービスはサービスで定めた間隔で、サービス用のメトリクスにデータポイントを作成している。
・サービス用のデータポイント作成とアラームの評価タイミングは同期していない。
・アラームの評価タイミングで、評価期間中に存在するサービス用データポイントから統計に基づきアラームのデータポイントが作成される。
・アラームのデータポイント作成と、アラームの監視タイミングは同期していない。・・・らしいぞ。
・アラームの監視にて、評価期間内のアラーム用データポイントがアラーム条件と一致すればアラーム状態となる。
※文章だけで理解した人は天才だと思うので、図にしてみました。
最大遅延時間ですが、分かりやすいように以下の条件で考える。
・サービスのメトリクス送信間隔:5分(EC2基本モニタリング相当)
・アラームの監視間隔(期間):5分
・評価期間(1/1)
上記条件だと、以下のタイミングで遅延が発生する“可能性がある”。
・アラームの事象発生とサービス用メトリクスデータ記録
・サービス用メトリクスデータ記録とアラーム用メトリクスデータ記録
・アラーム用メトリクスデータ記録とアラーム監視の差分
それぞれのタイミングが都合よく若干ずれたと仮定すると
最大遅延時間は、アラームの[メトリクスと条件の指定]の[期間]×3未満の時間発生する“可能性がある”。
※文章だけで理解した人は天才だと思うので、図にしてみました。
何かのお役に立てば・・・参考程度にしてください。
時間があれば検証してみます。
告知 2022/05/27 日本語URLが不評なので全ページ修正しました、リンク切れはツリーを辿ってください。