Spring Boot APM 연동: New Relic · Datadog 설정
Spring Boot 애플리케이션에서 New Relic과 Datadog을 연동해 APM을 구성하는 절차와 설정 예시, 에이전트 설치, application.yml 구성, 검증 과정까지 단계별로 설명하는 방법
목차
개요
이 문서에서는 Spring Boot 애플리케이션에 New Relic과 Datadog APM을 연동하는 실무 중심 절차를 다룬다. 처음 접하는 개발자도 이해하기 쉽도록 에이전트 설치, 애플리케이션 설정, 검증까지 단계별로 정리한다. 주요 키워드는 spring boot new relic 연동, datadog spring boot 설정, apm spring boot 설치 방법 이다.
APM 개념과 적용 범위
APM이란
애플리케이션 성능 모니터링(APM)은 응답 시간, 에러율, 트랜잭션 추적, 리소스 사용률을 수집해 서비스 상태를 파악하는 기술이다. 분산환경에서는 트레이스 데이터를 통해 호출 흐름을 분석할 수 있다.
왜 Spring Boot에 필요한가
Spring Boot는 마이크로서비스 아키텍처에서 널리 사용된다. APM을 도입하면 병목 구간을 빠르게 찾아내고, 에러 원인을 추적하며, 서비스 수준을 유지하는 데 도움이 된다.
사전 준비
- Java 8 이상 런타임
- Spring Boot 프로젝트 소스 및 빌드 도구(Maven 또는 Gradle)
- New Relic, Datadog 계정과 API 키
- 서버에 에이전트 설치 권한 또는 CI/CD로 배포할 수 있는 권한
New Relic 연동
1. 에이전트 다운로드 및 설치
New Relic Java 에이전트는 JVM 옵션으로 로드한다. New Relic 계정에서 최신 에이전트 jar를 내려받아 애플리케이션 시작 시 -javaagent 옵션을 추가한다.
java -javaagent:/opt/newrelic/newrelic.jar -jar app.jar
2. newrelic.yml 설정
newrelic.yml 파일에서 license_key와 app_name을 설정한다. production 환경에서는 로그 레벨과 수집 정책을 검토한다.
common:
license_key: YOUR_NEW_RELIC_LICENSE_KEY
app_name: my-spring-boot-app
log_level: info
audit_mode: false
3. Spring Boot와의 통합
기본적으로 New Relic 에이전트는 프레임워크를 자동 감지한다. 추가적으로 사용자 정의 트랜잭션을 만들려면 New Relic API를 사용한다. 필요 시 Spring의 필터나 인터셉터에서 트랜잭션 이름을 명시할 수 있다.
Datadog 연동
1. dd-java-agent 설치
Datadog Java APM은 dd-java-agent를 -javaagent로 실행한다. 또한 애플리케이션에 dd-trace 라이브러리를 추가하면 더 많은 프레임워크 통합이 가능하다.
java -javaagent:/opt/dd/dd-java-agent.jar -Ddd.service=my-spring-boot-app -jar app.jar
2. 의존성 추가 (선택)
자동 계측 외에 라이브러리 기반 설정을 원하면 build 파일에 dd-trace 의존성을 추가한다. 아래는 Maven 예시이다.
<dependency>
<groupId>com.datadoghq"</groupId>
<artifactId>dd-trace-ot"</artifactId>
<version>0.91.0</version>
</dependency>
3. 환경 변수와 application.yml 설정
Datadog은 환경 변수 또는 시스템 프로퍼티로 구성한다. 서비스명, 환경, 인스턴스 태그 등을 설정하면 대시보드에서 구분이 쉬워진다.
DD_AGENT_HOST=agent-host
DD_TRACE_ENABLED=true
DD_SERVICE=my-spring-boot-app
DD_ENV=production
공통 구성 포인트
1. 서비스명과 환경 통일
모든 서비스에서 일관된 서비스명과 환경 태그를 사용하면 대시보드 집계가 용이하다. New Relic의 app_name, Datadog의 dd.service 값을 명확히 설정한다.
2. 로깅 연계
APM과 로그를 연결하면 원인 분석이 쉬워진다. 로그에 trace id나 span id를 포함하도록 로거 패턴을 수정한다. Datadog은 로그 수집기와 연계해 자동 파싱을 지원한다.
3. 사용자 정의 계측
자동 계측으로 충분하지 않은 경우, APM 제공 API를 사용해 커스텀 트랜잭션과 메트릭을 전송한다. 예를 들어 외부 API 호출, 백그라운드 작업, 비동기 처리 구간을 수동으로 계측한다.
검증과 문제 해결
- 애플리케이션 시작 로그에서 에이전트 로드 메시지를 확인한다.
- New Relic/Datadog 대시보드에서 서비스가 등록되었는지 확인한다.
- 트랜잭션 샘플을 호출해 분산 추적이 생성되는지 테스트한다.
- 에러가 수집되지 않으면 로그 레벨과 필터를 점검한다.
자주 발생하는 문제
- 에이전트 미탑재: -javaagent 경로 오류로 미적용되는 경우가 많다.
- 네트워크 차단: 에이전트가 APM 서버로 전송하지 못하면 수집 실패가 발생한다.
- 버전 호환성: JVM 버전과 에이전트 버전 호환성을 확인한다.
실무 적용 체크리스트
- 에이전트 설치 위치와 권한 확인
- 서비스명, 환경 변수 통일
- 로그에 trace id 포함하도록 패턴 수정
- 샘플 트랜잭션으로 데이터 수집 확인
- 모니터링 경고 정책 설정
결론
New Relic과 Datadog은 각기 장단점이 있다. New Relic은 UI와 분석 기능이 강력하고, Datadog은 로그·메트릭·트레이스 통합에 유리하다. spring boot new relic 연동과 datadog spring boot 설정은 에이전트 설치와 서비스명 통일, 로그 연계가 핵심이며, apm spring boot 설치 방법은 단계별 검증을 통해 안정적으로 적용할 수 있다. 실제 운영 환경에서는 작은 서비스부터 단계적으로 적용해 데이터 품질을 확인하는 것을 권장한다.