Go Agent Release Notes
최신 버전: 0.6.1
2026-06-24
v0.6.1
New yaml add 규칙 추가
- 빌드 시 같은 패키지에 새 파일을 자동 생성(기존 파일은 덮어쓰지 않음)
- 이전
append: true방식은add규칙으로 대체, 기존append: trueyaml은 빌드 시 안내 메시지와 함께 차단
New LLM 모니터링 지원
- Go LLM SDK 코드 수정 없이 자동 계측. LLM 외부 호출·토큰 사용량·응답 지연이 대시보드에 표시됨
- 지원 SDK:
sashabaranov/go-openai,cloudwego/eino-ext,anthropics/anthropic-sdk-go,openai/openai-go whatap.conf에llm_enabled=true추가 시 활성화- LLM 어댑터를 직접 import하는 경우
go get github.com/whatap/go-api/instrumentation/llm@latest추가 필요
Feature Kafka(sarama) 외부 호출 수집
- Kafka Producer 호출이 외부 호출 통계에 표시됨
Changed 빌드 명령 정리
- 사용 중단된
init/inject/generate/uninit서브커맨드와-wrap/-no-output옵션 제거
Changed fmt 로그 계측 기본 비활성
fmt.Print*계측 기본 비활성,enabled_packages: [fmt]로 활성화 가능- 고빈도 로그 앱에서 오버헤드 발생 가능성 있으므로 주의 필요
Fixed 자동 계측 안정성 개선
- 기존 gRPC 인터셉터가 설정된 앱의 기동 오류 수정(기존 인터셉터와 함께 동작)
- 특정 중첩 코드에서의 빌드 오류 수정
- 일부 상황의 트랜잭션 중복 생성 수정
Fixed 로그 계측 오버헤드 개선
- 로그 수집 비활성화 시에도 발생하던 불 필요한 오버헤드 제거
2026-02-25
v0.5.4
New 외부 모듈 자동 계측
-external-module옵션으로go get으로 받은 사내 모듈도 자동 계측할 수 있음
whatap-go-inst --external-module=mycompany.com/internal/lib go build ./...
New net/http, fasthttp 자동 감지 패턴 추가
http.Server{Handler},http.Handle(),fasthttp.Server{Handler}구조체 리터럴 패턴을 자동으로 감지하여 래핑함
Feature 프레임워크 Wrap 함수 추가
whataphttp.WrapHandler(),whatapfasthttp.WrapHandler(),whataplogrus.WrapLogger()등 8개 Wrap 함수 추가
Changed logrus 계측 패턴 변경
SetOutput방식에서 Hook 방식으로 변경하여 앱의 logrus 출력 설정과 충돌하지 않음
Changed 보안 취약점 해결
- 데이터 중계 에이전트의 Go 빌드 버전을 1.24.13으로 업그레이드하고 OTLP 관련 의존성을 제거하여 보안 취약점 108개 해결함
Fixed 자동 계측 안정성 개선
- 익명 함수(Cobra Command 등) 내 코드 변환, struct 필드 초기화 내
framework.New()감지, 빈main()함수 처리, gorilla/mux fork 호환성 문제 수정
2026-02-05
v0.5.3
Fixed Aerospike v6 Close() 메서드 래핑 시 컴파일 에러가 발생하던 문제 수정
Fixed 같은 함수에서 Sarama NewConfig()를 2회 이상 호출할 때 중복 선언 에러가 발생하던 문제 수정
2026-02-04
v0.5.2
Fixed wrap 모드에서 tags 플래그 값이 빌드 타겟으로 변환되는 문제 수정
Fixed go install 시 버전 정보가 dev로 표시되는 문제 수정
2026-01-25
v0.5.1
Feature 패키지 레벨 http.Client 및 client.Do() 패턴 분산 추적 지원
Fixed go-redis v7이 잘못 감지되는 문제 수정(v8/v9만 지원)
2026-01-22
v0.5.0
New Go 1.18 버전 요구
go-api 모듈의 최소 Go 버전이 1.17에서 1.18로 상향되었습니다. Go 1.18의 Generics 기능을 활용한 Wrap 함수 구현을 위해 필요합니다.
Go 1.17 이하 버전에서는 go-api v0.5.0을 사용할 수 없습니다.
New 자동 계측 도구 whatap-go-inst
Go AST 기반 소스코드 자동 계측 CLI 도구를 지원합니다. 소스코드를 직접 수정하지 않고 빌드 시점에 모니터링 코드를 자동 삽입합니다.
# 설치
go install github.com/whatap/go-api-inst/cmd/whatap-go-inst@latest
# 사용
whatap-go-inst init
go get github.com/whatap/go-api@latest
go mod tidy
whatap-go-inst go build ./...지원 라이브러리
- 웹: Gin, Echo, Fiber, Chi, Gorilla Mux, net/http, FastHTTP
- DB: database/sql, sqlx, GORM
- Redis: Redigo, go-redis (v8, v9)
- NoSQL: MongoDB, Aerospike
- 메시지큐: Sarama (IBM/Shopify)
- RPC: gRPC, Kubernetes client-go
- 로그: log, logrus, zap
New Active Stack 기능
실행 중인 트랜잭션의 goroutine 스택을 실시간으로 수집하여 병목 구간을 분석할 수 있습니다.
active_stack_enabled=true # 기본값: true
active_stack_second=10 # 수집 간격 (초)
active_stack_count=100 # 최대 수집 개수New 트랜잭션 연계 로그 수집 (TraceLogWriter)
로그 출력 시 현재 goroutine의 트랜잭션 정보를 자동으로 연계합니다.
import "github.com/whatap/go-api/logsink"
log.SetOutput(logsink.GetTraceLogWriter(os.Stderr))- goroutine ID 기반 트랜잭션 컨텍스트 자동 연계
- 기존 GetWriterHookStderr()와 호환성 유지
New 지원 라이브러리 추가
| 라이브러리 | 패키지 | whatap 모듈 |
|---|---|---|
| go-redis v9 | github.com/redis/go-redis/v9 | whatapgoredis |
| go-redis v8 | github.com/go-redis/redis/v8 | whatapgoredis |
| sqlx | github.com/jmoiron/sqlx | whatapsqlx |
| MongoDB | go.mongodb.org/mongo-driver | whatapmongo |
| Aerospike | github.com/aerospike/aerospike-client-go | sql.Wrap |
| fmt.Print | fmt | whatapfmt |
Feature 범용 Wrap[T] 함수 (Go 1.18 Generics)
Go 1.18의 Generics를 활용한 범용 Wrap 함수를 추가했습니다.
result := trace.Wrap(ctx, "operation", func() int {
return doSomething()
})- trace.Wrap[T], trace.WrapError[T], trace.WrapVoid
- sql.Wrap[T], httpc.Wrap[T], method.Wrap[T]
Feature DB 연결 추적 (StartOpen)
데이터베이스 연결 시점을 모니터링합니다. (SQL_TYPE_DBC)
- whatapgorm, whatapredigo, whatapgoredis, whatapsql, whatapsqlx
Feature HTTP 클라이언트 mtrace 헤더 지원
멀티트랜잭션 추적을 위한 mtrace 헤더를 자동으로 추가합니다.
Changed goroutine ID 기반 트랜잭션 추적 개선
context가 nil인 경우에도 goroutine ID를 사용하여 TraceContext를 찾을 수 있도록 개선했습니다. go.use_goroutine_id_enabled 기본값이 false에서 true로 변경되어, context가 전달되지 않는 환경에서도 SQL과 HTTP 트랜잭션 연계가 정상 동작합니다.
Fixed LineBuffer.Append() 버그 수정
로그 수집 시 LineBuffer.Append() 함수에서 발생하던 버그를 수정했습니다.
Fixed deprecated mongo.NewClient 제거
whatapmongo에서 deprecated된 mongo.NewClient를 mongo.Connect로 변경했습니다.
Fixed URL 경로 "/" 공백 변환 버그 수정
filepath.Join 사용으로 인해 "/" 경로가 공백으로 변환되는 문제 를 수정했습니다.
2025-11-19
v0.4.6
Fixed 에이전트 이름 패턴의 환경변수 처리 버그 수정
object_name설정에서{env.환경변수이름}패턴이 정상 동작하지 않던 문제를 수정했습니다.
# 설정 예시
object_name={env.SERVER_NAME}-{pid}
# 환경변수: SERVER_NAME=web-server-01
# 결과: 에이전트 이름 web-server-01-12345
Feature 로그 Stdout 출력
컨테이너 환경에서 로그를 stdout으로도 확인할 수 있습니다.
log_stdout_enabled=true # 기본값: false
Feature 프로세스 ID 패턴 지원
에이전트 이름에 프로세스 ID를 포함할 수 있습니다. 같은 서버에서 여러 프로세스 실행 시 유용합니다.
object_name=myapp-{pid}
# 결과: myapp-12345
Feature HTTP 상태 코드별 통계
HTTP 상태 코드별로 트랜잭션 통계를 수집합니다.
5초 통계
- HTTP 상태코드별 count/time 집계
- 200/400/500대 상태별 버킷 집계
- 개별 상태코드별 상세 집계
5분 통계
- URL + Status 조합으로 count/time/error 집계
- 5분마다 서버로 전송
설정 옵션
tx_status_meter_enabled=true # 5초 통계 (기본: true)
stat_txstatus_enabled=true # 5분 통계 (기본: true)
stat_txstatus_max_count=10000 # 최대 항목 수
Feature 쿠버네티스 컨테이너 ID 연계
쿠버네티스 환경에서 컨테이너 ID를 정확히 연계할 수 있습니다.
동작 방식
- Go Agent가 실행되면 컨테이너 ID를
container.conf파일로 생성합니다 - 생성된 컨테이너 ID를 사용하여 쿠버네티스 모니터링과 연계합니다
# Deployment YAML에 환경변수 추가
env:
# Go Agent 실행 파일 경로
- name: WHATAP_GO_AGENT_PATH
value: /usr/whatap/agent/whatap_agent_static
# 컨테이너 ID가 저장될 경로
- name: WHATAP_CONTAINER_CONF_PATH
value: /usr/whatap/agent
2025-09-12
v0.4.5
Fixed 트랜잭션 수집 오류 수정
- 에러 문구를 수집하는 과정에서 오류가 발생해 트랜잭션이 정상적으로 수집되지 않는 문제 수정
- 문제가 되는 옵션의 기본값을 false로 변경
- txtext_txname_enabled=false
- txtext_error_enabled=false
- v0.4.4 버전을 사용하는 경우 위 옵션을 중지하면 문제 해결 가능
2025-09-08
v0.4.4
Fixed Docker 환경에서 여러 컨테이너의 CPU core 수집(미터링 정보)이 중복 계산되는 문제 수정
- 미터링 정보를 전달하는 과정에서 다른 데이터와 혼합되는 문제 수정
- Linux UUID를 기준으로 중복 계산이 되지 않는 오류 수정
2024-10-16
v0.4.3
Fixed os.Stdout, os.Stderr 로그 수집 오류 수정
-
trace.Init함수에서 로그 수집 기능을 활성화하도록 수정 합니다. 최대한 다른 로그 라이브러리 보다 먼저 실행할 수 있도록 변경합니다. -
os.Stdout,os.Stderr를 래핑한 io.Writer를 사용할 수 있는 함수를 추가했습니다.
2024-09-06
v0.4.2
Fixed 라이브러리 파일이 없어 발생하는 컴파일 오류 수정
2024-08-28
v0.4.1
New Standard output 로그 수집 기능 추가
New 에이전트 설정 파일(whatap.conf)보다 환경 변수를 우선 처리하는 옵션 추가
-
기존 에이전트 설정은 whatap.conf, 환경 변수 순서로 적용합니다.
-
use_env_first(기본값false) 옵션을 설정하면 whatap.conf 파일의 설정보다 환경 변수를 우선 적용합니다.whatap.confuse_env_first=true -
WHATAP_USE_ENV_FIRST=true형식으로 환경 변수를 이용해 설정할 수 있습니다.
Changed 다음 에이전트 옵션의 기본값 수정
-
TCP read timeout 시간을 30초에서 120초로 변경합니다.
whatap.confnet_so_time=120000 -
TCP write buffer 값을 8Mb에서 2Mb로 변경합니다.
whatap.confnet_write_buffer_size=2*1024*1024
Fixed OKIND 환경 변수 인식 오류 수정
OKIND 또는 WHATAP_OKIND 환경 변수로 okind를 설정할 수 있습니다.
2024-06-19
v0.4.0
New linux aarch64 지원
Changed 기존 paramkey.txt 대신 security.conf 파일 사용
기존 security.conf 파일의 paramkey 키의 값을 사용합니다. 기본값은 무작위값이 아닌 WHATAP으로 지정도록 변경합니다. WHATAP 지정되면 키 입력없이 복호화할 수 있습니다.
Changed SQL 문장의 정규화 옵션 설정 변경
-
SQL 문장에서 파라미터를 분리하여 정규화하는 기능을 항상 활성화하세요.
trace_sql_normalize_enabled옵션을 항상true로 설정하세요. -
이미 정규화 옵션을 비활성화(정규화 중지 설정)한 상태라면, 정규화해서 파라미터를 별도 표기하는 설정을 활성화하세요.
profile_sql_param_enabled옵션을true로 설정하세요.- 정규화된 파라미터를 별도 암호화하여 수집합니다.
- security.conf의
paramkey로 복호화하여 데이터를 확인할 수 있습니다.
Changed 모니터링 중지 기능 변경
-
trace.Init()함수 호출이 없을 경우(주석 및 삭제) 모니터링 기능을 시작하지 않습니다. -
enabled옵션 설정(true): 정보 수집 기능을 중지합니다. 에이전트의 내부 백그라운드 모듈은 유지됩니다. -
shutdown옵션 설정(true): 모든 에이전트 기능을 중지합니다. 다시 시작하려면shutdown옵션을true로 변경하고 애플리케이션을 재시작해야 합니다.
Fixed 에이전트가 설치된 서버의 IP를 127.0.0.1로 수집하는 문제 수정, 와탭 서버와 TCP 연결된 Local address IP 정보로 수집
2024-03-14
v0.3.3
Fixed go.mod의 replace 구문 삭제(github.com/whatap/golib 모듈의 replace 구문을 삭제)
Fixed 예제 소스 빌드 오류 수정(github.com/whatap/go-api-example)
2024-03-06
v0.3.2
Changed 로그 모니터링 파일 이름에 날짜 형식의 변수를 사용하도록 수정
Python
strftime()사용 기준으로 수정합니다. 예, 20240101: %Y%m%d
Fixed gRPC 헤더 수집 오류 수정
2024-01-24
v0.3.1
Fixed whatap.onode 옵션 설정 후 이름이 아닌 해쉬(숫자)값만 표기되는 오류 수정
Fixed Ubuntu 14 버전에서 whatap-agent.service 파일이 인식 안되는 오류 수정
2024-01-10
v0.3.0
Feature 멀티 트랜잭션 추적에서 Trace context(W3C) 지원
Trace context를 지원하는 OpenTelmetry와 멀티 트랜잭션 추적 연계를 지원합니다.
Changed SQL, Method, HTTP call의 리소스 지표 수집 수정
트랜잭션 시작 시점의 리소스(cpu, memory)와 각 스탭 시작 시점의 리소스 차이를 수집합니다.
Changed 설정 파일(whatap.conf)이 없을 경우 새로 생성하도록 수정
Fixed 액티브 트랜잭션 목록에서 외부 호출 누적 건수가 누적 시간으로 잘못 수집되는 오류 수정
Fixed 리눅스 환경에서 whatap-agent 서비스(whatap-agent.service) 실행 오류 수정