설정 가이드
whatap-go-inst의 설정 파일과 환경 변수를 사용하여 계측 동작을 제어하는 방법을 안내합니다. Preset으로 간편하게 설정하거나, 개별 패키지를 선택하여 세밀하게 제어할 수 있습니다.
기본 사용 방법은 기본 사용법를 먼저 참고하세요.
설정 파일
파일 위치
설정 파일은 다음 순서로 검색됩니다.
| 우선순위 | 위치 | 설명 |
|---|---|---|
| 1 | --config 플래그 | whatap-go-inst --config=/path/to/config.yaml |
| 2 | WHATAP_INST_CONFIG 환경변수 | WHATAP_INST_CONFIG=/path/to/config.yaml |
| 3 | .whatap/config.yaml | 프로젝트 루트의 .whatap 디렉토리 (권장) |
| 4 | .whatap/whatap.yaml | 대체 파일명 |
팁
프로젝트 루트에 .whatap/config.yaml 파일을 생성하여 사용하는 것을 권장합니다.
기본 구조
# .whatap/config.yaml
instrumentation:
preset: "full" # Preset 선택 (full/minimal/web/database/external/log/custom)
error_tracking: false # 에러 추적 활성화 여부
enabled_packages: [] # 추가로 활성화할 패키지
disabled_packages: [] # 비활성화할 패키지
exclude: # 계측 제외 패턴 (선택사항)
- "**/*_test.go"
설정 항목
Preset 옵션
Preset을 사용하여 계측할 패키지 그룹을 간편하게 선택할 수 있습니다.
| Preset | 포함 항목 | 설명 |
|---|---|---|
full (기본값) | 웹 + 데이터베이스 + 외부 서비스 + 로그 | 모든 패키지 활성화 |
minimal | trace.Init/Shutdown | 최소 설정 (프레임워크 미들웨어 제외) |
web | Gin, Echo, Fiber, Chi, Gorilla Mux, net/http, FastHTTP | 웹 프레임워크만 |
database | database/sql, sqlx, GORM v1/v2 | 데이터베이스만 |
external | Redis, MongoDB, Kafka, gRPC, Kubernetes | 외부 서비스만 |
log | log, logrus, zap | 로그 라이브러리만 |
custom | enabled_packages로 직접 지정 | 사용자 정의 |
Preset 조합
Preset과 패키지 옵션을 조합하면 더 세밀하게 제어할 수 있습니다.
최종 활성화 패키지 = Preset 패키지 + enabled_packages - disabled_packages
조합 예시:
preset: full+disabled_packages: ["grpc"]→ gRPC 제외한 전체preset: web+enabled_packages: ["sql"]→ 웹 프레임워크 + SQLpreset: custom+enabled_packages: ["gin", "sql"]→ Gin과 SQL만
환경 변수
설정 파일 대신 환경 변수로도 설정할 수 있습니다.
| 환경 변수 | 설명 | 값 | 기본값 |
|---|---|---|---|
GO_API_AST_DEBUG | 디버그 출력 활성화 | 1 (활성화), 0 (비활성화) | 0 |
GO_API_AST_OUTPUT_DIR | 계측된 소스 출력 디렉토리 | 디렉토리 경로 | - |
WHATAP_INST_CONFIG | 설정 파일 경로 | 파일 경로 | .whatap/config.yaml |
설정 우선순위
설정값은 다음 순서로 적용됩니다.
CLI 옵션 > 환경 변수 > 설정 파일 > 기본값
| 출처 | 예시 | 우선순위 |
|---|---|---|
| CLI 옵션 | --error-tracking | 1 (최고) |
| 환경 변수 | GO_API_AST_DEBUG=1 | 2 |
| 설정 파일 | error_tracking: true | 3 |
| 기본값 | false | 4 (최하) |