본문으로 건너뛰기

Go Agent Release Notes

최신 버전: 0.6.1​


2026-06-24

v0.6.1

New yaml add 규칙 추가

  • 빌드 시 같은 패키지에 새 파일을 자동 생성(기존 파일은 덮어쓰지 않음)
  • 이전 append: true 방식은 add 규칙으로 대체, 기존 append: true yaml은 빌드 시 안내 메시지와 함께 차단

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 v9github.com/redis/go-redis/v9whatapgoredis
go-redis v8github.com/go-redis/redis/v8whatapgoredis
sqlxgithub.com/jmoiron/sqlxwhatapsqlx
MongoDBgo.mongodb.org/mongo-driverwhatapmongo
Aerospikegithub.com/aerospike/aerospike-client-gosql.Wrap
fmt.Printfmtwhatapfmt

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.conf
    use_env_first=true
  • WHATAP_USE_ENV_FIRST=true 형식으로 환경 변수를 이용해 설정할 수 있습니다.

Changed 다음 에이전트 옵션의 기본값 수정

  • TCP read timeout 시간을 30초에서 120초로 변경합니다.

    whatap.conf
    net_so_time=120000
  • TCP write buffer 값을 8Mb에서 2Mb로 변경합니다.

    whatap.conf
    net_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) 실행 오류 수정