0
0

Lambdaのエラーログを分別する方法

Posted at

AWS LambdaのログをCloudWatch Logs Insightsでエラータイプ別に分析する方法

AWS Lambda関数のログデータを効率的に分析し、エラーをタイプ別にカウントした事があったので備忘に残します。
このような場合に役立つツールがCloudWatch Logs Insightsです。
Lambda関数が出力するログデータをCloudWatch Logs Insightsを使って分析し、エラーをタイプ別に集計する方法について記載します。


CloudWatch Logs Insightsとは?

CloudWatch Logs Insightsは、Amazon CloudWatchのログデータに対してクエリを実行し、迅速に必要な情報を抽出・分析するための強力なツールです。
SQLに似た構文を使い、ログメッセージをフィルタリングしたり、メトリクスを集計したりすることができます。これにより、AWS Lambdaをはじめとするさまざまなサービスのログを効果的に活用できるようになります。


Lambdaから出るエラーをカウントする豊富

  • エラーをタイプ別にカウントしたい
    Lambda関数が出力するエラーメッセージを特定のパターンごとに分類し、その頻度を確認する必要した。

  • CloudWatch Logs Insightsのクエリを使ってデータを集計したい
    CloudWatch Logs Insightsのクエリを使って、Lambda関数のログから効率的にデータを抽出し、エラーメッセージをタイプ別に集計します。


CloudWatch Logs Insightsクエリの例

まずは、基本的なクエリについて。
クエリは、Lambda関数のログデータから「error」を含むメッセージをフィルタリングし、メッセージごとのエラーの発生回数をカウントします。

fields @timestamp, @message
| filter @message like /error/  # "error" を含むログメッセージをフィルタリング
| stats count() by @message  # メッセージごとにカウント
| sort count() desc  # カウントを降順でソート

このクエリについて

  1. filter @message like /error/
    ログメッセージから「error」を含むものだけを抽出します。

  2. stats count() by @message
    メッセージごとに出現回数をカウントし、エラータイプ別の発生頻度を確認します。

  3. sort count() desc
    カウント結果を降順に並べ替え、どのエラーが最も頻繁に発生しているか一目で確認できるようにします。


クエリのカスタマイズ:エラーコード別に集計

次に、エラーメッセージが特定のパターンに従っている場合、例えば「Error Code:」というフォーマットでエラーコードを集計したい場合。
この場合、parse関数を使ってエラーコードを抽出し、それに基づいてエラーを集計するクエリに変更することができます。

fields @timestamp, @message
| filter @message like /error/
| parse @message "[Error Code: *]" as errorCode  # エラーメッセージからエラーコードを抽出
| stats count() by errorCode  # エラーコードごとにカウント
| sort count() desc  # カウントを降順で並べ替え

クエリについて

  1. filter @message like /error/
    先ほどと同じく、「error」を含むログメッセージを抽出。

  2. parse @message "[Error Code: *]" as errorCode
    メッセージから「Error Code:」に続くエラーコードを抽出し、それをerrorCodeという変数に格納します。

  3. stats count() by errorCode
    エラーコードごとにカウントし、エラーのタイプ別に発生頻度を確認します。

  4. sort count() desc
    カウントを降順で並べ替え、どのエラーコードが最も多く発生しているかが把握できます


CloudWatch Logs Insightsの活用メリット

  • リアルタイムでログ分析が可能
    Lambda関数のエラーを素早く検出し、原因特定までの時間を大幅に短縮できます。

  • 高度なクエリで柔軟な分析
    SQL風のクエリを使うことで、カスタマイズしたログ分析が簡単に行えます。
    パターンマッチングや集計、並べ替えも自由自在です。

  • コスト効率の良いログ管理
    必要なログデータだけを効率的に抽出することで、膨大なログデータを扱う際のコストを抑えることができます。


まとめ

AWS CloudWatch Logs Insightsを活用することで、AWS Lambda関数のログデータからエラーをタイプ別に集計し、効率的に分析することができます。特に、statsコマンドやcount関数を活用することで、エラーの発生頻度を可視化できるのはとても良い利点です。


参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0