同じ問題に当たって迷う人が少なくなりますように。
問題
アプリケーション部門から、SpringBootを2.7から3.1に上げたらECSでうまく起動しなくなったと連絡が来た。
原因
OpenTelemetoryのJavaAgentが古かった(1.15)…。
発生条件?
- Java17
- SpringBoot3.1
- aws-opentelemetry-agent.jar(X-Rayのため、v1.15.0)
で発生。
切り分け
- ContainerHealthCheckは失敗している(404)
- ELBからのヘルスチェックも失敗している(404)
そもそも、actuator/healthがうまく動いてない様子。
アプリケーション側じゃない?と思いつつ本業じゃないけど、コードを流し見したが違和感はない。公式のマイグレーション手順を見たが問題なさそう。
結果
X-RayのためにADOTのOpenTelemetoryのAgentを使っていたが、2.7系で確認したもの(v1.15.0)をそのまま使っていた。社内向けのTemplateに保存しており、Platformとして確認済みということで案内していたため。
気付いたらv1.29.0まで上がってるし。
ReleaseNoteを見てたらSpring3系の話もあったので、それじゃない?と。
調べてたら
のような案件もあったけど、日本語だったりの情報とかもないし、検索かけてもあまり出てこなかったので、ここで供養する。