CloudWatch Logs Insightsでログを調査した際に使用したコマンドのメモ。
ログをそのままCloudWatchに取り込むと全て@messageフィールドに入ってしまうので、抽出する際に必要に応じてパースしてやる必要がある。
対象のログ
以下のようなタブ区切りのログを抽出するものとする。
2023/07/06 17:00:00,001 127.0.0.1 API101 200 60
ログ(@message)をフィールドごとに分割する
parseで分割できる。
fields @message
| parse @message "*\t*\t*\t*\t*" as datetime, ip, apiId, status, responseTime
分割したフィールドに対して条件を指定する
filterで条件を指定できる。
fields @message
| parse @message "*\t*\t*\t*\t*" as datetime, ip, apiId, status, responseTime
| filter apiId like "API1"
表示する項目を指定する
displayで表示項目を制限できる。
fields @message
| parse @message "*\t*\t*\t*\t*" as datetime, ip, apiId, status, responseTime
| display datetime, apiId, status, responseTime
タイムスタンプでソートする
sortで並び順を指定できる。
fields @message
| parse @message "*\t*\t*\t*\t*" as datetime, ip, apiId, status, responseTime
| sort @timestamp asc
表示件数を指定する
limitで表示件数を制限できる。
fields @message
| parse @message "*\t*\t*\t*\t*" as datetime, ip, apiId, status, responseTime
| limit 50