📚
Spring BootのアプリケーションでAzure Monitor Application Insightsを使用する
1. 今回の前提
- アプリケーションはSpring Bootで作成
- コンテナイメージを作成する
- Azure App Serviceにカスタムコンテナイメージをデプロイする
Azureリソースやコンテナのデプロイについては割愛
2. Application InsightsのAgentを入手
Application InsightsのAgentはGitHubで公開されているのでダウンロードする。特に理由がなければ最新版で良い。
3. Dockerfileを作成
追加するのは以下の2つ
- Application Insights Agentのモジュールをコピーする
- 今回ダウンロードしたモジュールはversion3.4.12
- 起動引数にApplication Insights Agentの指定を追加する
-
-jar
より前に記述する必要があるとのこと。
-
# ---- Build ----
FROM gradle:8.0.2-jdk17 as build-stage
RUN mkdir /project
COPY . /project
WORKDIR /project
# download application insights agent
RUN wget https://github.com/microsoft/ApplicationInsights-Java/releases/download/3.4.12/applicationinsights-agent-3.4.12.jar
RUN gradle clean build -x test
# ---- Release ----
FROM gcr.io/distroless/java17-debian11
USER nonroot:nonroot
COPY /project/build/libs/<jar file name>.jar /app/<jar file name>.jar
COPY /project/applicationinsights-agent-3.4.12.jar /app/applicationinsights-agent-3.4.12.jar
EXPOSE 8080
ENTRYPOINT ["java", "-javaagent:/app/applicationinsights-agent-3.4.12.jar","-jar", "/app/<jar file name>.jar"]
4. App ServiceのApplication Setting
-
APPLICATIONINSIGHTS_CONNECTION_STRING
: Application Insightsの接続文字列
参考にしたドキュメント
Discussion