0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ECSからCloudWatch Logsに出力されるスタックトレースが分割されるので対策した話

Posted at

発生した問題

ECS上のSpringアプリのログ監視を導入した際に、CloudWatch Logsに出力されているスタックトレース内のキーワードも対象に抽出されるため、ログレベルで正しく監視できなかった。

対策方針

アプリでの例外ハンドリングにおいて、エラーログとスタックトレースをセットで出力していたので、これを1つのログとしてまとめる

対策前後のログイメージ

対策前:スタックトレースが1行単位でログが出力されている

timestamp message
2025-01-07T11:10:52.550+09:00 2025-01-07 11:10:52.550 INFO XXXXXXX Hoge
2025-01-07T11:10:52.551+09:00 2025-01-07 11:10:52.551 ERROR XXXXXXX Hogehoge
2025-01-07T11:10:52.551+09:00 java.lang.HogeException: xxx ERROR xxx...
2025-01-07T11:10:52.551+09:00   at com.example.StackTraceTest....
2025-01-07T11:10:52.551+09:00   at com.example.StackTraceTest....
2025-01-07T11:10:52.551+09:00   at com.example.StackTraceTest....
2025-01-07T11:10:52.551+09:00   at com.example.StackTraceTest....
2025-01-07T11:10:52.551+09:00   ... 3 more

対策後:スタックトレースがエラーログとセットで出力されている

timestamp message
2025-01-07T11:10:52.550+09:00 2025-01-07 11:10:52.550 INFO XXXXXXX Hoge
2025-01-07T11:10:52.551+09:00 2025-01-07 11:10:52.551 ERROR XXXXXXX Hogehoge
java.lang.HogeException: xxx ERROR xxx...
  at com.example.StackTraceTest....
  at com.example.StackTraceTest....
  at com.example.StackTraceTest....
  at com.example.StackTraceTest....
  ... 3 more

対策内容

ECSのタスク定義のログ収集の設定でawslogs-multiline-patternの項目を追加します。
項目値には、1行となるログを識別するための表現を指定します。

以下の例だとPrefixが日付になっていた場合を表します(2025-01-07 11:10:52.550がヒット)
ログのフォーマットを調整している場合は、ここをプロジェクトに合った内容に置き換える必要があります。

image.png

参考サイト

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?