ECS, Fargate(Spring Boot)에서 Datadog APM 설정
APM은 요청을 처리하기 위해 모든 메트릭과 실행된 작업의 종류(또한 어떤 순서로)를 볼 수 있도록 하여 응용 프로그램을 심층 분석하는 데 도움이 됩니다.
예를 들어 서버 애플리케이션에서 APM을 사용하는 경우 데이터베이스에 대한 쿼리를 실행하는 데 걸리는 시간, 관련 코드를 처리하는 데 걸리는 시간 및 지연 시간을 확인할 수 있습니다. 클라이언트의 요청을 서버가 처리하는 데 걸린 시간을 나타내는 시간입니다.
For container metrics, you can reference this nice documentation from Datadog itself.
Amazon ECS를 Fargate와 함께 사용하면서 ECS 또는 Fargate 에 대한 APM 구성을 확인해야 하는지 혼란스러웠습니다.
관련 문서를 모두 읽은 후, 제 환경에서 Datadog APM을 활성화하기 위한 세 가지 필수 단계가 있음을 알게 되었습니다.
dd-java-agent.jar
-javaagent
플래그에 할당합니다. For step 3, you can configure it in your task definition file.
필자의 경우 Spring Boot 애플리케이션을 컨테이너화하기 위한 이전 Dockerfile은 다음과 같습니다.
FROM openjdk:11-jdk AS builder
WORKDIR application
ARG JAR_FILE=build/libs/MY_APPLICATION.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
FROM openjdk:11-jdk
WORKDIR application
COPY --from=builder application/dependencies/ ./
RUN true
COPY --from=builder application/spring-boot-loader/ ./
RUN true
COPY --from=builder application/snapshot-dependencies/ ./
RUN true
COPY --from=builder application/application/ ./
RUN true
ENV TZ Asia/Seoul
ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"]
dd-java-agent.jar
파일을 다운로드하고 -javaagent
플래그에 할당해야 하는 위치가 궁금해서 Dockerfile이 제 경우에 적절한 위치라는 것을 알았습니다.그래서 내 Dockerfile은 아래와 같이 변경되었고, 보시다시피
dd-java-agent.jar
파일을 다운로드하고 내 애플리케이션의 jar 파일을 실행할 때 -javaagent
플래그에 할당합니다.FROM openjdk:11-jdk AS builder
WORKDIR application
ARG JAR_FILE=build/libs/MY_APPLICATION.jar
COPY ${JAR_FILE} application.jar
RUN java -Djarmode=layertools -jar application.jar extract
FROM openjdk:11-jdk
WORKDIR application
RUN apt-get update \
&& apt-get install -y wget \
&& rm -rf /var/lib/apt/lists/*
RUN wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
COPY --from=builder application/application.jar ./application.jar
RUN true
COPY --from=builder application/dependencies/ ./
RUN true
COPY --from=builder application/spring-boot-loader/ ./
RUN true
COPY --from=builder application/snapshot-dependencies/ ./
RUN true
COPY --from=builder application/application/ ./
RUN true
ENV TZ Asia/Seoul
ENTRYPOINT ["java", "-javaagent:dd-java-agent.jar", "-Ddd.profiling.enabled=true", "-XX:FlightRecorderOptions=stackdepth=256", "org.springframework.boot.loader.JarLauncher"]
그리고 그게 다야! 새 작업을 배포한 후 Datadog APM 탭에서 내 애플리케이션을 볼 수 있었고 생성된 모든 이벤트, 모든 세부 정보 및 처리 시간, 요청을 처리하는 데 걸리는 시간 등을 볼 수 있었습니다.
3일 정도 이것저것 구성했는데 저와 같은 상황이신 분들은 이 블로그가 도움이 되었으면 합니다.
감사합니다. 피드백이나 의견은 항상 감사합니다.
Reference
이 문제에 관하여(ECS, Fargate(Spring Boot)에서 Datadog APM 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aws-builders/setting-up-datadog-apm-on-ecs-fargatespring-boot-4ema텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)