본문으로 건너뛰기

오픈소스 추적

자바(Java) 애플리케이션에서 사용하는 프레임워크나 오픈소스 라이브러리를 에이전트를 통해 추적하는 설정 방법을 제공합니다. 이는 Java 에이전트 설정 파일(whatap.conf) 파일에 weaving 옵션을 추가하여 설정하며, 다양한 프레임워크 및 라이브러리 버전에 대응하는 방법을 안내합니다.

예를 들어, 프레임워크나 오픈소스로 spring-boot-3.x, feign-client-11, okhttp3-4.4 사용 시 다음과 같이 옵션을 설정하세요.

whatap.conf
weaving=spring-boot-3.0,feign-11,okhttp3-4.4

지원 오픈소스 목록

Java 에이전트를 통해 추적하고 있는 프레임워크 또는 오픈소스에 대한 설정 방법은 다음을 참조하세요.

Apache Camel

CXF

camel-cxf Version설정 값에이전트 최소 버전
3.15 이상weaving=camel-cxf-3.15v2.2.27

Netty

camel-netty4 Version설정 값에이전트 최소 버전
2.25 이상weaving=camel-netty4-2.25v2.2.42

SEDA

camel-seda Version설정 값에이전트 최소 버전
2.22 이상weaving=camel-seda-2.22v2.2.20
3.2 이상weaving=camel-seda-3.2v2.2.20

DB2

DB2 Version설정 값에이전트 최소 버전
11.5 이상weaving=db2-11.5v2.2.18

DynamoDB

DynamoDB Version설정 값에이전트 최소 버전
1.11weaving=dynamodb-1.11v2.2.39
2.25weaving=dynamodb-2.25v2.2.39

Feign Client

Feign Version설정 값에이전트 최소 버전
11 이상weaving=feign-11v2.2.6

Hystrix

Hystrix Version설정 값에이전트 최소 버전
1.5 이상weaving=hystrix-1.5v2.0_21

Kafka

Kafka Version설정 값에이전트 최소 버전
kafka-clients 2.4.0 이상weaving=kafka-clients-2.4.0v2.2.15
reactor-kafka 1.3 이상weaving=reactor-kafka-1.3v2.2.5

Logging

Log4j2

Log4j2 Version설정 값에이전트 최소 버전
2.17 이상weaving=log4j-2.17v2.2.28

Logback

Logback Version설정 값에이전트 최소 버전
1.2.8 이상weaving=logback-1.2.8v2.2.28

MongoDB

MongoDB Version설정 값에이전트 최소 버전
3.8.2 이상weaving=mongodb-3.8v2.2.11
4.0.3 이상weaving=mongodb-4.0v2.2.11
4.4 이상weaving=mongodb-4.4v2.2.11
4.8 이상weaving=mongodb-4.8v2.2.11
4.11 이상weaving=mongodb-4.11v2.2.45
5.0 이상weaving=mongodb-5.0v2.2.45

Mule Framework

Mule Version설정 값에이전트 최소 버전
3.9.5 이상weaving=mule-3.9.5v2.2.23
4.5 이상weaving=mule-4.5v2.2.23

OkHttp

OkHttp Version설정 값에이전트 최소 버전
2.7 이상weaving=okhttp-2.7v2.0_15
3.xweaving=okhttp3v2.0_15
3.x (4.4 이상)weaving=okhttp3-4.4v2.2.9

Quarkus Reactive

Quarkus Reactive Version설정 값에이전트 최소 버전
1.13 이상weaving=quarkus-reactive-1.13v2.2.19
2.10 이상weaving=quarkus-reactive-2.10v2.2.19

RabbitMQ

reactor-rabbitmq Version설정 값에이전트 최소 버전
1.2 이상weaving=reactor-rabbitmq-1.2v2.0_06

Redis

Jedis

Jedis Version설정 값에이전트 최소 버전
2.9.0 이상weaving=jedis-2.9v2.2.43
2.9.3 이상weaving=jedis-2.9v2.0_33
3.2 이상weaving=jedis-3.2v2.0_09

Lettuce

Lettuce Version설정 값에이전트 최소 버전
5.1 이상weaving=lettuce-5.1v2.2.7
6.2 이상weaving=lettuce-6.2v2.2.16

Retrofit

Retrofit Version설정 값에이전트 최소 버전
2.5 이상weaving=retrofit-2.5v2.2.39
주의

okhttp 설정과 동시 사용 불가

Ribbon

Ribbon Version설정 값에이전트 최소 버전
전체 버전weaving=ribbonv2.2.10

Spring Boot

Spring Boot Version설정 값에이전트 최소 버전
2.1 이상weaving=spring-boot-2.1v2.2.23
2.5 이상weaving=spring-boot-2.5v2.2.9
2.7 이상weaving=spring-boot-2.7v2.2.9
3.0 이상weaving=spring-boot-3.0v2.2.9
3.2 이상weaving=spring-boot-3.2v2.2.38
포함 기술 스택 보기
  • spring-boot-2.1: r2dbc-mysql-0.8.2, spring-cloud-gateway-2.1, spring-kafka-2.7, spring-webflux-5.1, tomcat9
  • spring-boot-2.5: r2dbc-mysql-0.8.2, spring-cloud-gateway-3.0, spring-kafka-2.7, spring-webflux-5.3, mongodb-4.0.3, reactor-kafka-1.3, rxjava2, tomcat9
  • spring-boot-2.7: jasync-r2dbc-mysql-2.1.23, r2dbc-mysql-0.9.3, spring-cloud-gateway-3.1, spring-kafka-3.0, spring-webflux-5.3, mongodb-4.4, reactor-kafka-1.3, rxjava2, tomcat9
  • spring-boot-3.0: jasync-r2dbc-mysql-2.1.23, r2dbc-mysql-1.0.2, spring-cloud-gateway-4.0, spring-kafka-3.0, spring-webflux-6.0, mongodb-4.8, redis(lettuce-6.2), reactor-kafka-1.3, rxjava3, tomcat10
  • spring-boot-3.2: jasync-r2dbc-mysql-2.1.23, r2dbc-mysql-1.1.3, spring-cloud-gateway-4.1, spring-kafka-3.1, spring-webflux-6.1, redis(lettuce-6.2), reactor-kafka-1.3, rxjava3, tomcat10

Tomcat

Tomcat Version설정 값에이전트 최소 버전
9.xweaving=tomcat9v2.2.5
10.xweaving=tomcat10v2.2.5

Undertow

Undertow Version설정 값에이전트 최소 버전
2.2 이상weaving=undertow-2.2v2.2.39
2.3 이상weaving=undertow-2.3v2.2.14

Vert.x

Vert.x Version설정 값에이전트 최소 버전
3.5.3weaving=vertx-3.5v2.2.42
3.9weaving=vertx-3.9v2.2.44
4.5weaving=vertx-4.5v2.2.39

Java 에이전트의 CVE 오탐 방지

Java 에이전트에 포함된 라이브러리 클래스는 애플리케이션에서 실제 사용할 때만 로딩됩니다. CVE 취약점 검사 시 라이브러리가 검출되더라도, 사용하지 않는다면 실제 취약점은 없습니다.

불필요한 추적 클래스를 삭제하려면 다음 명령어를 실행하세요.

java -cp whatap.agent-X.Y.Z.jar whatap.agent.setup.RemoveWeaving -remove [weaving jar filename]
주의

Java 에이전트 업데이트 시마다 삭제 작업을 다시 수행해야 합니다.

노트

특정 라이브러리 클래스를 제거하는 명령어는 Java 에이전트 2.2.37 버전 이상에서 지원합니다.

사용법: java -cp whatap.agent-X.Y.Z.jar whatap.agent.setup.RemoveWeaving [arguments] [weaving jar filename]

Example
java -cp whatap.agent-2.2.37.jar whatap.agent.setup.RemoveWeaving -remove spring-boot-2.5.jar spring-boot-2.7.jar

Arguments:

  • -r 또는 -remove: Java 에이전트에서 weaving jar 파일을 삭제하고 새로운 Java 에이전트를 생성합니다.

  • -l 또는 -list: weaving jar 파일 목록을 출력합니다.

  • -d 또는 -debug: 디버그 로깅(debug logging)을 활성화합니다.

  • -e 또는 -error: 에러에 대한 풀 스택 트레이스 정보를 표시합니다.

  • -h 또는 -help: 도움말 출력하고 종료합니다.