GO 모니터링
WhaTap Go 모니터링 동작 방식은 다음과 같습니다.
-
Go 애플리케이션에 Whatap Go 라이브러리 적용
-
github.com/whatap/go-api라이브러리를 import하여 애플리케이션에 모니터링 코드를 포함합니다. -
해당 라이브러리는 Go 앱 내부에서 성능 지표와 트레이스 데이터를 수집하고 전송 준비를 합니다.
-
-
설정 파일(whatap.conf) 구성
-
설정 파일 whatap.conf를 애플리케이션 실행 경로 또는
WHATAP_HOME디렉터리에 위치시킵니다. -
애플리케이션은 실행 시 설정을 읽고, 자 체 정보를 등록하며 데이터 전송을 준비합니다.
주요 설정 설명 license 프로젝트 액세스 키 whatap.server.host WhaTap 수집 서버 주소 app_name 애플리케이션 이름
-
-
에이전트 실행
- 서버에 설치된 whatap_agent(
/usr/whatap/agent/whatap_agent)을 실행합니다. 이 에이전트는 Go 애플리케이션이 보내는 모니터링 데이터를 받아서 WhaTap 수집 서버로 전달하는 중계(Proxy) 역할을 수행합니다.
- 서버에 설치된 whatap_agent(
-
통신 구조
에이전트 동작 방식 Inbound(에이전트 수신) 127.0.0.1:6600 TCP 서버로 실행
Go 애플리케이션은 localhost:6600으로 모니터링 데이터 전송
애플리케이션 → (TCP 6600) → AgentOutbound(에이전트 전달) 수신된 데이터를 WhaTap 수집 서버로 Outbound 연결을 통해 전송
Agent → WhaTap 서버 (Outbound 6600)노트Go 애플리케이션은 로컬 에이전트와만 통신하며, 외부 전송은 에이전트가 담당합니다.

와탭 모니터링 서비스를 사용하기 위해서는 회원 가입 후 프로젝트를 생성하고 대상 서버에 에이전트를 설치해야 합니다.
프로젝트 생성하기
에이전트를 설치하기 전에 먼저 프로젝트를 생성하세요.
-
와탭 모니터링 서비스에 로그인합니다.
-
왼쪽 사이드 메뉴에서 전체 프로젝트 > + 프로젝트 버튼을 클릭합니다.
-
상품 선택 화면에서 설치할 제품을 선택합니다.
-
아래 항목을 입력하거나 선택합니다.
-
프로젝트 이름: 프로젝트의 이름을 입력합니다.
-
데이터 서버 지역: 데이터 서버가 위치한 리전을 선택합니다. 리전은 클라우드 서비스를 제공하는 데이터 센터의 묶음입니다. 선택한 리전에 사용자의 데이터가 저장됩니다.
-
타임 존: 알림 및 보고서 생성 시 기준이 되는 시간을 설정합니다.
-
알림 언어 설정: 경고 알림 메시지의 언어를 설정합니다. (한글, 영어 지원)
-
프로젝트 그룹: 여러 프로젝트를 그룹으로 묶어 관리할 수 있습니다. 소속될 그룹이 있으면 선택하세요.
-
프로젝트 설명: 프로젝트에 대한 추가 설명이나 세부 정보를 입력합니다.
-
-
모든 설정을 완료하면 프로젝트 생성하기 버튼을 클릭합니다.
조직을 선택한 상태에서 프로젝트를 추가할 경우 조직 하위 그룹을 필수로 설정해야 합니다.
그룹에 대한 자세한 설명은 다음 문서를 참고하세요.
액세스 키 확인
액세스 키는 와탭 서비스 활성화를 위한 고유 ID입니다.
설치 안내 섹션에서 프로젝트 액세스 키 발급받기 버튼을 선택하세요. 액세스 키를 자동으로 발급받은 후 다음 단계를 진행합니다.
프로젝트를 생성한 후, 자동으로 에이전트 설치 페이지로 이동합니다. 에이전트 설치 페이지로 이동하지 않는다면 화면 왼쪽 메뉴에서 관리 > 에이전트 설치를 선택하세요.
Go 라이브러리 설정하기
Go 애플리케이션 소스 코드에 github.com/whatap/go-api 패키지를 추가하세요.
go get github.com/whatap/go-api
trace.Init(), trace.Shutdown() 함수로 초기화 및 종료를 설정하세요. trace.Start(), trace.End() 함수로 트랜잭션의 시작 종료를 설정하세요.
import "github.com/whatap/go-api/trace"
func main(){
trace.Init(nil)
//It must be executed before closing the app.
defer trace.Shutdown()
ctx, _ := trace.Start(context.Bacground(), "Start Tx")
...
trace.End(ctx, err)
}
라이브러리 설정에 대한 자세한 내용은 다음 문서를 참조하세요.
모니터링 설정
기본 설정하기
다음 명령어를 차례로 실행해 whatap.conf 파일에 액세스 키와 수집 서버 IP 주소 등을 설정하세요.
-
애플리케이션의 시작 스크립트 경로에 whatap.conf 파일을 생성하세요.
-
WHATAP_HOME환경 변수를 설정하지 않으면 애플리케이션 시작 스크립트의 경로를 whatap.conf 파일 경로로 인식합니다.
# 스크립트 실행 경로에 whatap.conf 파일 생성
$ echo "license={액세스 키}" >> ./whatap.conf
$ echo "whatap.server.host={수집 서버 IP 주소}" >> ./whatap.conf
$ echo "app_name={애플리케이션 이름}" >> ./whatap.conf
# 애플리케이션 실행
./app
-
license: 액세스 키를 입력하세요. -
whatap.server.host: 수집 서버 IP 주소를 입력하세요. -
app_name: 애플리케이션 이름을 입력하세요. 문자열을 이용해 사용자 설정할 수 있습니다.노트app_name은 에이전트 이름을 결정하기 위한 구성 요소입니다. 자세한 내용은 다음 문서를 참조하세요.
WHATAP_HOME 환경 변수 설정하기
whatap.conf 파일 경로를 WHATAP_HOME 환경 변수로 설정할 수 있습니다. WHATAP_HOME 경로를 우선 생성하세요.
# WHATAP_HOME 경로 우선 생성 후 whatap.conf 파일 경로 설정
mkdir ./whatap_home
echo "license={액세스 키}" >> ./whatap_home/whatap.conf
echo "whatap.server.host={수집 서버 IP 주소}" >> ./whatap_home/whatap.conf
echo "app_name={애플리케이션 이름}" >> ./whatap_home/whatap.conf
# 애플리케이션 실행
WHATAP_HOME=./whatap_home ./app
에이전트 설정의 우선순위는 whatap.conf 파일이 먼저 적용되고, 그다음으로 환경 변수가 적용됩니다. 환경 변수를 우선적으로 적용하려면 use_env_first 옵션을 true로 설정하세요. 또는 WHATAP_USE_ENV_FIRST=true 형식으로 환경 변수를 설정할 수도 있습니다.
프로세스 별 에이전트 이름 설정
2개 이상의 프로세스로 실행되는 애플리케이션에서 1개의 whatap.conf 파일을 공유하면 사용자가 설정한 변경 사항이 정상 반영되지 않을 수 있습니다. 프로세스 별로 각각의 whatap.conf 파일을 설정할 것을 권장합니다.
에이전트 이름이 중복되지 않도록 사용자는 문자열을 에이전트 이름에 추가해 구분할 수 있습니다. app_name 옵션으로 설정한 값이 에이전트 이름의 가장 앞 부분에 추가됩니다.
동일 인스턴스, 동일 명령어로 실행되는 에이전트의 이름이 중복되는 현상을 피할 수 있습니다.
# WHATAP_HOME 경로 우선 생성 후 whatap.conf 파일 경로 설정
mkdir ./whatap_home
echo "license={액세스 키}" >> ./whatap_home/whatap.conf
echo "whatap.server.host={수집 서버 IP 주소}" >> ./whatap_home/whatap.conf
echo "app_name={애플리케이션 이름-1}" >> ./whatap_home/whatap.conf
# 애플리케이션 실행
WHATAP_HOME=./whatap_home ./app
# WHATAP_HOME 경로 우선 생성 후 whatap.conf 파일 경로 설정
mkdir ./whatap_home1
echo "license={액세스 키}" >> ./whatap_home1/whatap.conf
echo "whatap.server.host={수집 서버 IP 주소}" >> ./whatap_home1/whatap.conf
echo "app_name={애플리케이션 이름-2}" >> ./whatap_home1/whatap.conf
# 애플리케이션 실행
WHATAP_HOME=./whatap_home1 ./app
데이터 중계용 에이전트 다운로드
액세스 키를 발급 받으면 다음 명령어를 이용해 에이전트를 다운로드하세요.
- Red Hat/CentOS
- Debian/Ubuntu
- Amazon Linux
- Alpine Linux
## 패키지 리포지토리 등록
$ sudo rpm -Uvh https://repo.whatap.io/centos/5/noarch/whatap-repo-1.0-1.noarch.rpm
## 패키지 설치
$ sudo yum install whatap-agent
## 패키지 저장소 등록
$ wget https://repo.whatap.io/debian/release.gpg -O -|sudo apt-key add -
$ wget https://repo.whatap.io/debian/whatap-repo_1.0_all.deb
$ sudo dpkg -i whatap-repo_1.0_all.deb
$ sudo apt-get update
## 패키지 설치
$ sudo apt-get install whatap-agent
## 패키지 저장소 등록
$ sudo rpm --import https://repo.whatap.io/centos/release.gpg
$ echo "[whatap]" | sudo tee /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "name=whatap packages for enterprise linux" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "baseurl=https://repo.whatap.io/centos/latest/\$basearch" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "enabled=1" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
$ echo "gpgcheck=0" | sudo tee -a /etc/yum.repos.d/whatap.repo > /dev/null
## 패키지 설치
$ sudo yum install whatap-agent
whatap-agent.tar.gz 파일을 다운받고 '/' 디렉터리 기준으로 압축을 해제하세요. /usr/whatap/agent 경로에 모니터링 파일을 생성합니다.
- x64
- AArch64
wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/x86_64/whatap-agent.tar.gz
tar -xvzf whatap-agent.tar.gz -C /
wget https://s3.ap-northeast-2.amazonaws.com/repo.whatap.io/alpine/aarch64/whatap-agent.tar.gz
tar -xvzf whatap-agent.tar.gz -C /
에이전트는 사용자 애플리케이션의 모니터링 정보를 내부 IPC(TCP)를 통해 전달받고, 해당 데이터를 와탭 수집 서버로 전송하는 데이터 중계 프로세스입니다.
모니터링 시작하기
애플리케이션 서버를 다시 시작하면 에이전트가 정보 수집을 시작합니다.