CloudWatch Logs Insightsの簡単なまとめ

CloudWatch Logs Insightsの簡単なまとめ:

今年のre:Inventでは多くの新サービス/新機能が発表されましたがその中の一つCloudWatch Logs Insightsについて(備忘録も兼ねて)簡単にまとめます。


CloudWatch Logs Insightsとは

  • CloudWatch Logsのログデータを簡単に検索したり分析できる
  • クエリ言語を使ってログを操作
  • 料金

    • スキャンされたデータ 1 GB あたり 0.0076 USD
    • 参考


Log Fields

以下の3つのログフィールドはログの種類にかかわらず自動で生成されます
@message: ログのメッセージ本文
@timestamp: タイムスタンプ
@logStream: ログストリーム名

また、ログの種類によっては、そのほかのフィールドが自動で検知されCloudWatchコンソールの右下に検出されたフィールドとして表示されます

例えばLambdaの実行ログにクエリを発行したい場合@requestId, @duration, @billedDuration, @type, @maxMemoryUsed, @memorySizeなどが利用できます

そのほかログの種類によって利用できるフィールドの一覧はドキュメントにあります


Command

以下6つのコマンドを実行できます


  • fields: フィールドを取得してくることができます,また後述する関数と組み合わせることで取得したフィールドに加工を加えることもできます

  • filter: フィールドを絞り込みます

  • stats: 後述する関数と組み合わせることで様々な集計計算ができます

  • sort: 降順、昇順で結果をソートできます

  • limit: クエリの実行結果数を制限できます

  • parse: ログフィールドからデータを取り出すことができます
parseについてはもう少し追記しておくと, 例えばログメッセージの中から例外が発生したメッセージの内容だけ取り出したいときに

fields @message 
| filter @message like /Exception/ 
| parse "*:*" as errorCode, errorMessage  
のように使うイメージです


Functions

クエリ内では以下の関数を使うこともできます


General Functions


  • ispresent: フィールドが存在するか真偽値を返す

  • coalesce: リストの中から最初のnullでない値を返す


String Functions


  • isempty: フィールドが存在しないもしくは空の時trueを返す

  • concat: 文字列を連結する

  • trim: 文字列をトリムする

  • strlen: 文字列の長さを返す
など


Aggregation Functions in the Stats Command

statsコマンド内で使える集計関数もあります


  • avg, count, sumなど
そのほかいくつか利用可能なオペレーションや関数がありますので詳しくはドキュメントを参照してください。


試してみる

例えば,logger.error()などで出力したエラーログのうち最新20件の発生箇所と該当コードだけ抜き出してみたいときは以下のようにクエリを書くことで簡単に参照できるかと思います。

filter @type = 'ERROR' 
| parse @message "*:*:*" as message, place, code 
| fields place, code 
| sort @timestamp desc 
| limit 20 


まとめ

ドキュメント読めばわかるようなことをつらつら書いていてアレですが日本語ドキュメントがまだないようなので書きました。

上で紹介した機能以外にも集計結果をグラフ化したりクエリの結果をCloudWatchダッシュボードにエクスポートしたりクエリの履歴を参照することもできとても便利な機能が揃っています。

CloudWatchでのログの取り扱いに困っている方は一度試してみてください。

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)