MENU

CloudWatchは「数字・出来事・通知」で整理する。メトリクス・ログ・アラームの違い

CloudWatchは「数字・出来事・通知」で整理する。メトリクス・ログ・アラームの違いを説明する画像

おはようございます、YASUです。

前にX-Rayの記事で、「いつ異常が起きたかはCloudWatch、どこで起きたかはX-Ray」と書きました。DVAの勉強で、そのCloudWatchの中の、メトリクス・ログ・アラームの役割が混ざってしまったので、シンプルに整理しました。

目次

結論

メトリクスは「数字の記録」、ログは「出来事の記録」、アラームは「数字がおかしくなったら知らせる仕組み」です。自分なりのイメージでは、メトリクスが体温計の数字、ログがカルテ、アラームが熱が高いと鳴る警報です。

メトリクス:数字の記録

Lambdaは、関数が呼び出されるたびに、メトリクスをCloudWatchへ自動で送ります。設定は不要で、1分間隔で記録されます。主なものは次の通りです。

  • Invocations:関数が呼び出された回数
  • Errors:エラーになった呼び出しの数
  • Duration:実行にかかった時間
  • Throttles:スロットリングされた呼び出しの数
  • ConcurrentExecutions:同時に実行されている数
  • IteratorAge:DynamoDB StreamsやKinesisのような、ストリームが起動元の場合に、処理の遅れを表す

AWSの公式ドキュメントには、同時実行の上限に達してスロットリングされたリクエストは、InvocationsにもErrorsにも数えられない、と書かれています。スロットリングは、Throttlesで見る、と覚えます。

ログ:出来事の記録

Lambdaは、実行のログを、/aws/lambda/関数名というロググループに、自動で出力します。ログを書き込むには、実行ロールに、CloudWatch Logsへの書き込み権限が必要です。前に整理した実行ロールの話と、つながる部分です。

  • ログの最後に、実行時間、課金時間、使ったメモリの最大値が載る
  • 詳しく調べる時は、CloudWatch Logs Insightsで検索する
  • メトリクスフィルターを使うと、ログの特定のパターンを数えて、メトリクスにできる

アラーム:知らせる仕組み

アラームは、メトリクスを監視して、しきい値を超えたら、SNSなどで通知する仕組みです。状態は、OK、ALARM、INSUFFICIENT_DATA(データ不足)の3つです。Lambdaでは、まず、エラー、Duration、Throttlesのアラームを作るのが、基本とされています。

3つの関係

メトリクス(数字)→ アラーム(しきい値を超えたら通知)
ログ(出来事)    → 原因を調べる(Logs Insights)
                 → メトリクスフィルターで、数字にもできる

数字がおかしいことに気づくのが、メトリクスとアラーム。何が起きたかを調べるのが、ログ。どこが遅いのかを調べるのが、前に整理したX-Rayです。

試験での見分け方

  • 「エラーが増えたら通知したい」→ メトリクス(Errors)に、アラームを設定
  • 「ログの中の特定のエラー文を数えたい」→ メトリクスフィルター
  • 「スロットリングを検知したい」→ Throttlesメトリクス
  • 「どのサービスの処理が遅いか、特定したい」→ X-Ray

まとめ

  • メトリクスは数字、ログは出来事、アラームは数字がおかしい時の通知
  • Lambdaは、メトリクスとログを、CloudWatchへ自動で送る
  • スロットリングされたリクエストは、InvocationsにもErrorsにも数えられず、Throttlesで見る
  • メトリクスフィルターで、ログの内容をメトリクスにでき、アラームにつなげられる

「数字」「出来事」「通知」の3つに分けて整理すると、CloudWatchの役割がすっきり見えました。それでは、また明日!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次