본문으로 건너뛰기

오픈소스 추적

자바(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

설정: weaving=camel-cxf-3.15

에이전트 버전지원 범위
v2.2.27camel-cxf 3.15 이상

Netty

설정: weaving=camel-netty4-2.25

에이전트 버전지원 범위
v2.2.42camel-netty4 2.25 이상

SEDA

설정: weaving=camel-seda-2.22, weaving=camel-seda-3.2

에이전트 버전지원 범위
v2.2.20camel-seda 2.22 이상, 3.2 이상

DB2

설정: weaving=db2-11.5

에이전트 버전지원 범위
v2.2.18db2 11.5 이상

DynamoDB

설정: weaving=dynamodb-1.11, weaving=dynamodb-2.25

에이전트 버전지원 범위
v2.2.39dynamodb 1.11, 2.25

Feign Client

설정: weaving=feign-11

에이전트 버전지원 범위
v2.2.6feign 11 이상

Hystrix

설정: weaving=hystrix-1.5

에이전트 버전지원 범위
v2.0_21hystrix 1.5 이상

Kafka

설정: weaving=kafka-clients-2.4.0, weaving=reactor-kafka-1.3

에이전트 버전지원 범위
v2.2.15kafka-clients 2.4.0 이상
v2.2.5reactor-kafka 1.3 이상

Logging

Log4j2

설정: weaving=log4j-2.17

비고: 특정 appender 제외하는 에이전트 옵션 제공

에이전트 버전지원 범위
v2.2.28log4j 2.17 이상

Logback

설정: weaving=logback-1.2.8

비고: 특정 appender 제외하는 에이전트 옵션 제공

에이전트 버전지원 범위
v2.2.28logback 1.2.8 이상

MongoDB

설정: weaving=mongodb-{version}

에이전트 버전지원 범위
v2.2.453.8.2 ~ 5.0
v2.2.113.8.2 ~ 4.8

Mule Framework

설정: weaving=mule-3.9.5, weaving=mule-4.5

에이전트 버전지원 범위
v2.2.23mule 3.9.5 이상, 4.5 이상

OkHttp

설정: weaving=okhttp-2.7, weaving=okhttp3, weaving=okhttp3-4.4

에이전트 버전지원 범위
v2.2.9okhttp 2.7 이상, okhttp3, okhttp3-4.4
v2.0_15okhttp 2.7 이상, okhttp3 (4.4 제외)

Quarkus Reactive

설정: weaving=quarkus-reactive-1.13, weaving=quarkus-reactive-2.10

에이전트 버전지원 범위
v2.2.19quarkus-reactive 1.13 이상, 2.10 이상

RabbitMQ

설정: weaving=reactor-rabbitmq-1.2

에이전트 버전지원 범위
v2.0_06reactor-rabbitmq 1.2 이상

Redis

Jedis

설정: weaving=jedis-{version}

에이전트 버전지원 범위
v2.2.43jedis 2.9.0 ~ 3.2
v2.0_33jedis 2.9.3 ~ 3.2
v2.0_09jedis 3.2

Lettuce

설정: weaving=lettuce-{version}

에이전트 버전지원 범위
v2.2.16lettuce 5.1 ~ 6.2
v2.2.7lettuce 5.1

Retrofit

설정: weaving=retrofit-2.5

비고: okhttp 설정과 동시 사용 불가

에이전트 버전지원 범위
v2.2.39retrofit 2.5 이상

Ribbon

설정: weaving=ribbon

에이전트 버전지원 범위
v2.2.10ribbon

Spring Boot

설정: weaving=spring-boot-{version}

에이전트 버전지원 범위
v2.2.38spring-boot 2.1 ~ 3.2
v2.2.23spring-boot 2.1
v2.2.9spring-boot 2.5 ~ 3.0
포함 기술 스택 보기
  • 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

설정: weaving=tomcat9, weaving=tomcat10

에이전트 버전지원 범위
v2.2.5tomcat9, tomcat10

Undertow

설정: weaving=undertow-{version}

에이전트 버전지원 범위
v2.2.39undertow 2.2 ~ 2.3
v2.2.14undertow 2.3

Vert.x

설정: weaving=vertx-{version}

에이전트 버전지원 범위
v2.2.44vertx 3.5.3 ~ 4.5
v2.2.42vertx 3.5.3
v2.2.39vertx 4.5

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: 도움말 출력하고 종료합니다.