일반 설치
리눅스 환경의 Go 애플리케이션에 WhaTap 모니터링 에이전트를 설치하려면 다음 단계를 진행하세요.
팁
설치를 시작하기 전에 다음 정보를 준비하세요.
- WhaTap 프로젝트 액세스 키 ([프로젝트 메뉴] > [관리] > [에이전트 설치]에서 확인)
- WhaTap 수집 서버 IP 주소
Go 라이브러리 적용하기
모니터링 대상 애플리케이션에 WhaTap Go Library를 추가하는 방법은 다음과 같습니다. 자동 적용 방식을 권장합니다.
라이브러리 설정 방식
| 구분 | 설정 방식 | 설명 | 비고 |
|---|---|---|---|
| 자동 적용 | whatap-go-inst 사용 | whatap-go-inst 도구로 코드 자동 삽입 | 권장 |
| 수동 적용 | go-api 직접 사용 | API를 직접 코드에 추가 | 세밀한 제어 필요 시 |
자동 적용 (권장)
whatap-go-inst 도구를 사용하여 소스코드에 모니터링 코드를 자동으로 삽입합니다.
1. whatap-go-inst 설치하기
| Go Version | 설치 방법 |
|---|---|
| Go 1.21+ (권장) | go install 이용 |
| Go 1.18~1.20 | 바이너리 다운로드 |
-
Go 1.21+ (권장)
go install github.com/whatap/go-api-inst/cmd/whatap-go-inst@latest -
Go 1.18~1.20
미리 빌드된 바이너리를 다운로드하세요.
Linux x86_64:
wget https://github.com/whatap/go-api-inst/releases/latest/download/whatap-go-inst_linux_amd64.tar.gz
tar -xvzf whatap-go-inst_linux_amd64.tar.gz
sudo mv whatap-go-inst /usr/local/bin/Linux ARM64:
wget https://github.com/whatap/go-api-inst/releases/latest/download/whatap-go-inst_linux_arm64.tar.gz
tar -xvzf whatap-go-inst_linux_arm64.tar.gz
sudo mv whatap-go-inst /usr/local/bin/
2. 프로젝트 초기화 및 빌드
아래 명령어는 go.mod가 있는 프로젝트 루트 디렉토리에서 실행하세요.
처음 설치하는 경우
whatap-go-inst를 처음 설치했다면, 먼저 PATH 환경 변수를 설정해야 합니다.
# 환경 변수 추가 (처음 설치 시에만 필요)
export PATH=$PATH:$(go env GOPATH)/bin
# 프로젝트 초기화
whatap-go-inst init
# go-api 패키지 다운로드 및 설치
go get github.com/whatap/go-api@latest
go mod tidy
# 빌드 (모니터링 코드 자동 삽입)
whatap-go-inst go build -o myapp .
노트
자세한 사용법은 자동 적용 가이드를 참고하세요.
수동 적용
go-api를 직접 다운로드한 후 소스코드에 모니터링 코드를 수동으 로 삽입합니다.
1. go-api 다운로드
go get github.com/whatap/go-api
2. 모니터링 코드 추가
import "github.com/whatap/go-api/trace"
func main(){
trace.Init(nil)
defer trace.Shutdown()
ctx, _ := trace.Start(context.Background(), "Start Tx")
...
trace.End(ctx, err)
}
노트
자세한 API 사용법은 수동 적용 가이드를 참고하세요.
모니터링 환경 변수 설정하기
모니터링 환경 변수는 whatap.conf 파일에서 설정합니다.
whatap.conf는 애플리케이션이 실행되는 작업 디렉토리(working directory)에 생성해야 합니다.
주요 설정
| 환경 변수 | 설명 |
|---|---|
license | 프로젝트 액세스 키 |
whatap.server.host | WhaTap 수집 서버 주소 |
app_name | 애플리케이션 이름 |