호환성 요구 사항
최신 Java Tracer는 JVM 버전 8 이후의 모든 버전을 지원합니다. JVM 8 이전 버전에 관한 자세한 정보는 지원되는 JVM 런타임을 참조하세요.
Datadog의 Java 버전과 프레임워크 지원(레거시 및 유지 보수 버전 포함) 전체 목록은 호환성 요구사항을 참고하세요.
시작하기
시작하기 전에 먼저 Agent트를 설치하고 구성했는지 확인하세요.
애플리케이션 계측
Datadog Agent를 설치하고 구성했으면, 다음 단계로 애플리케이션을 계측할 SDK를 애플리케이션에 직접 추가합니다. 자세한 정보는 호환성 정보를 참조하세요.
애플리케이션 추적을 시작하는 방법:
- 최신 트레이서 클래스 파일이 포함된
dd-java-agent.jar를 Datadog 사용자가 액세스할 수 있는 폴더에 다운로드합니다.
wget -O dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
curl -Lo dd-java-agent.jar 'https://dtdg.co/latest-java-tracer'
ADD 'https://dtdg.co/latest-java-tracer' dd-java-agent.jar
참고: 특정 메이저 버전의 최신 빌드를 다운로드하려면 대신 https://dtdg.co/java-tracer-vX 링크를 사용하세요. 여기서 X는 원하는 메이저 버전입니다.
예를 들어 최신 버전 1 빌드의 경우, https://dtdg.co/java-tracer-v1을 사용합니다. 마이너 버전 번호는 포함하지 말아야 합니다. 대신 Datadog의 Maven 리포지토리에서 특정 버전을 참조하세요.
참고: Release Candidate 버전은 GitHub DataDog/dd-trace-java releases에서 제공됩니다. 이러한 버전에는 “RC"가 포함되어 있으며, 프로덕션 환경 외부에서 테스트하는 용도로 권장합니다. 새 Release Candidate 버전을 테스트용으로 사용할 수 있게 될 때 알림을 받으려면 GitHub 릴리스 알림을 구독하세요. Release Candidate를 사용하다가 문제가 발생하는 경우, Datadog 지원팀에 문의하세요.
Continuous Profiler, 배포 추적 및 로그 인젝션(로그를 Datadog로 보내는 경우)를 사용해 IDE, Maven 또는 Gradle 애플리케이션 스크립트나 java -jar 명령에서 앱을 실행하려면 -javaagent JVM 인수 및 다음과 같은 구성 옵션을 추가하세요(해당하는 경우).
java -javaagent:/path/to/dd-java-agent.jar -Ddd.profiling.enabled=true -Ddd.logs.injection=true -Ddd.service=my-app -Ddd.env=staging -Ddd.version=1.0 -jar path/to/your/app.jar
Note: If you have a strong need to reduce the size of your image and omit modules, you can use the jdeps command to identify dependencies. However, required modules can change over time, so do this at your own risk.
Note: When running the SDK with Java 24+, you may see warnings related to JNI native access. Suppress these warnings by adding the --enable-native-access=ALL-UNNAMED flag. See JEP 472 for more details.
프로파일링을 활성화하면 APM 번들에 따라 요금에 영향을 줄 수 있습니다. 자세한 정보는
가격 페이지를 참조하세요.
| 환경 변수 | 시스템 속성 | 설명 |
|---|
DD_ENV | dd.env | 애플리케이션 환경(production, staging 등) |
DD_LOGS_INJECTION | dd.logs.injection | Datadog 트레이스 및 스팬 ID에 대해 자동 MDC 키 인젝션을 활성화합니다. 자세한 내용은 고급 사용을 참조하세요.
버전 1.18.3부터, 이 서비스가 실행되는 곳에서 Agent Remote Configuration이 활성화되어 있으면 Software Catalog UI에서 DD_LOGS_INJECTION를 설정할 수 있습니다. |
DD_PROFILING_ENABLED | dd.profiling.enabled | Continuous Profiler 활성화 |
DD_SERVICE | dd.service | 동일한 작업을 수행하는 프로세스 세트의 이름입니다. 애플리케이션 통계를 그룹화하는 데 사용됩니다. |
DD_TRACE_SAMPLE_RATE | dd.trace.sample.rate | 모든 서비스의 트레이스 루트에서 샘플링 속도를 설정합니다.
버전 1.18.3부터, 이 서비스가 실행되는 곳에서 Agent Remote Configuration이 활성화되어 있으면 Software Catalog UI에서 DD_TRACE_SAMPLE_RATE를 설정할 수 있습니다. |
DD_TRACE_SAMPLING_RULES | dd.trace.sampling.rules | 지정된 규칙과 일치하는 서비스의 트레이스의 루트에서 샘플링 속도를 설정합니다. |
DD_VERSION | dd.version | 애플리케이션 버전(예: 2.5, 202003181415 또는 1.3-alpha) |
추가 구성 옵션은 아래에 설명되어 있습니다.
Java SDK를 JVM {#add-the-java-sdk-to-the-jvm}에 추가합니다.
-javaagent 및 기타 JVM 인수를 전달할 적절한 방법을 알아내려면 해당하는 애플리케이션 서버의 문서를 사용합니다. 다음은 일반적으로 사용되는 몇 가지 프레임워크에 대한 지침입니다.
앱의 이름이 my_app.jar라면 다음과 같은 내용을 포함한 my_app.conf를 만듭니다.
JAVA_OPTS=-javaagent:/path/to/dd-java-agent.jar
자세한 정보는 Spring Boot 설명서를 참고하세요.
Linux
Linux에서 Tomcat을 실행할 때 추적을 활성화하는 방법:
- Tomcat 시작 스크립트 파일(예:
setenv.sh)을 엽니다. - 다음을
setenv.sh에 추가합니다.CATALINA_OPTS="$CATALINA_OPTS -javaagent:/path/to/dd-java-agent.jar"
Windows(Windows 서비스형 Tomcat)
Tomcat을 Windows 서비스로 실행할 때 추적을 활성화하는 방법:
- Tomcat 프로젝트 폴더의
./bin 디렉터리에 있는 “tomcat@VERSION_MAJOR@w.exe” 유지 관리 유틸리티를 엽니다. - Java 탭으로 이동해
Java Options에 다음 내용을 추가합니다.
-javaagent:C:\path\to\dd-java-agent.jar
- Tomcat 서비스를 다시 시작하여 변경 사항을 적용합니다.
JAVA_OPTS="$JAVA_OPTS -javaagent:/path/to/dd-java-agent.jar"
- 독립형 모드와 Windows에서는
standalone.conf.bat 끝에 다음 라인을 추가합니다.
set "JAVA_OPTS=%JAVA_OPTS% -javaagent:X:/path/to/dd-java-agent.jar"
<option value="-javaagent:/path/to/dd-java-agent.jar"/>
자세한 내용은 JBoss 설명서를 참고하세요.
서비스형 Jetty를 시작하는 데 jetty.sh를 사용하는 경우, 이를 편집해 다음을 추가합니다.
JAVA_OPTIONS="${JAVA_OPTIONS} -javaagent:/path/to/dd-java-agent.jar"
Jetty를 시작하는 데 start.ini를 사용하는 경우, 다음 라인을 추가합니다(--exec 아래에, 또는 --exec 라인이 아직 없는 경우 해당 라인 추가).
-javaagent:/path/to/dd-java-agent.jar
관리 콘솔에서:
- Servers를 선택합니다. Server Type 아래에서 WebSphere application servers를 선택한 후, 해당 서버를 선택합니다.
- Java and Process Management > Process Definition을 선택합니다.
- Additional Properties 섹션에서 Java Virtual Machine을 클릭합니다.
- Generic JVM arguments 텍스트 필드에 다음을 입력합니다.
-javaagent:/path/to/dd-java-agent.jar
추가 정보와 옵션은 WebSphere docs를 참고하세요.
참고
java -jar 명령에 -javaagent 인수를 추가하는 경우, -jar 인수 앞에, 애플리케이션 인수가 아니라 JVM 옵션으로 추가해야 합니다. 예를 들면 다음과 같습니다.
java -javaagent:/path/to/dd-java-agent.jar -jar my_app.jar
For more information, see the Oracle documentation.
dd-java-agent를 클래스 경로에 추가하면 안 됩니다. 그러면 예기치 않은 동작을 초래할 수 있습니다.
자동 계측
Java 자동 계측은 JVM이 제공하는 java-agent 계측 기능을 사용합니다. java-agent가 등록되면 로드 시 클래스 파일을 수정할 수 있습니다.
참고: 원격 ClassLoader로 로드된 클래스는 자동으로 계측되지 않습니다.
계측은 자동 계측, OpenTracing API 또는 둘의 조합으로 수행될 수 있습니다. 계측은 보통 다음과 같은 정보를 수집합니다.
- OpenTracing API에서 타임스탬프가 제공되지 않는 한 JVM의 NanoTime 클록을 사용하여 타이밍 기간을 측정
- 키/값 태그 쌍
- 애플리케이션이 처리하지 않은 오류 및 스택 트레이스
- 시스템을 통과하는 트레이스(요청)의 총 수
구성
필요한 경우 Unified Service Tagging 구성을 포함하여, SDK가 애플리케이션 성능 텔레메트리 데이터를 원하는 방식으로 전송하도록 구성하세요. 자세한 내용은 라이브러리 구성을 참조하세요.
Remote Configuration
Remote Configuration을 사용하면 애플리케이션을 다시 시작하지 않고도 Datadog Agent가 동적으로 트레이싱 설정을 구성할 수 있습니다. Remote Configuration은 기본적으로 활성화되어 있습니다. 비활성화하려면 환경 변수를 다음과 같이 설정하세요.
DD_REMOTE_CONFIG_ENABLED=false
아니면 JVM 시스템 속성을 추가합니다.
-Ddd.remote_config.enabled=false
추가 자료