본문으로 건너뛰기

GO 모니터링

WhaTap Go 모니터링 동작 방식은 다음과 같습니다.

  1. Go 애플리케이션에 Whatap Go 라이브러리 적용

    • github.com/whatap/go-api 라이브러리를 import하여 애플리케이션에 모니터링 코드를 포함합니다.

    • 해당 라이브러리는 Go 앱 내부에서 성능 지표와 트레이스 데이터를 수집하고 전송 준비를 합니다.

  2. 설정 파일(whatap.conf) 구성

    • 설정 파일 whatap.conf를 애플리케이션 실행 경로 또는 WHATAP_HOME 디렉터리에 위치시킵니다.

    • 애플리케이션은 실행 시 설정을 읽고, 자체 정보를 등록하며 데이터 전송을 준비합니다.

      주요 설정설명
      license프로젝트 액세스 키
      whatap.server.hostWhaTap 수집 서버 주소
      app_name애플리케이션 이름
  3. 에이전트 실행

    • 서버에 설치된 whatap_agent(/usr/whatap/agent/whatap_agent)을 실행합니다. 이 에이전트는 Go 애플리케이션이 보내는 모니터링 데이터를 받아서 WhaTap 수집 서버로 전달하는 중계(Proxy) 역할을 수행합니다.
  4. 통신 구조

    에이전트동작 방식
    Inbound(에이전트 수신)127.0.0.1:6600 TCP 서버로 실행
    Go 애플리케이션은 localhost:6600으로 모니터링 데이터 전송
    애플리케이션 → (TCP 6600) → Agent
    Outbound(에이전트 전달)수신된 데이터를 WhaTap 수집 서버로 Outbound 연결을 통해 전송
    Agent → WhaTap 서버 (Outbound 6600)
    노트

    Go 애플리케이션은 로컬 에이전트와만 통신하며, 외부 전송은 에이전트가 담당합니다.

Go Monitoring

와탭 모니터링 서비스를 사용하기 위해서는 회원 가입 후 프로젝트를 생성하고 대상 서버에 에이전트를 설치해야 합니다.

프로젝트 생성하기

에이전트를 설치하기 전에 먼저 프로젝트를 생성하세요.

  1. 와탭 모니터링 서비스에 로그인합니다.

  2. 왼쪽 사이드 메뉴에서 전체 프로젝트 > + 프로젝트 버튼을 클릭합니다.

  3. 상품 선택 화면에서 설치할 제품을 선택합니다.

  4. 아래 항목을 입력하거나 선택합니다.

    • 프로젝트 이름: 프로젝트의 이름을 입력합니다.

    • 데이터 서버 지역: 데이터 서버가 위치한 리전을 선택합니다. 리전은 클라우드 서비스를 제공하는 데이터 센터의 묶음입니다. 선택한 리전에 사용자의 데이터가 저장됩니다.

    • 타임 존: 알림 및 보고서 생성 시 기준이 되는 시간을 설정합니다.

    • 알림 언어 설정: 경고 알림 메시지의 언어를 설정합니다. (한글, 영어 지원)

    • 프로젝트 그룹: 여러 프로젝트를 그룹으로 묶어 관리할 수 있습니다. 소속될 그룹이 있으면 선택하세요.

    • 프로젝트 설명: 프로젝트에 대한 추가 설명이나 세부 정보를 입력합니다.

  5. 모든 설정을 완료하면 프로젝트 생성하기 버튼을 클릭합니다.

노트

조직을 선택한 상태에서 프로젝트를 추가할 경우 조직 하위 그룹을 필수로 설정해야 합니다.

그룹에 대한 자세한 설명은 다음 문서를 참고하세요.

액세스 키 확인

액세스 키는 와탭 서비스 활성화를 위한 고유 ID입니다.

설치 안내 섹션에서 프로젝트 액세스 키 발급받기 버튼을 선택하세요. 액세스 키를 자동으로 발급받은 후 다음 단계를 진행합니다.

노트

프로젝트를 생성한 후, 자동으로 에이전트 설치 페이지로 이동합니다. 에이전트 설치 페이지로 이동하지 않는다면 화면 왼쪽 메뉴에서 관리 > 에이전트 설치를 선택하세요.

Go 라이브러리 설정하기

Go 애플리케이션 소스 코드에 github.com/whatap/go-api 패키지를 추가하세요.

go get github.com/whatap/go-api

trace.Init(), trace.Shutdown() 함수로 초기화 및 종료를 설정하세요. trace.Start(), trace.End() 함수로 트랜잭션의 시작 종료를 설정하세요.

Go
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 파일 경로로 인식합니다.

SH
# 스크립트 실행 경로에 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

데이터 중계용 에이전트 다운로드

액세스 키를 발급 받으면 다음 명령어를 이용해 에이전트를 다운로드하세요.

SH
## 패키지 리포지토리 등록
$ sudo rpm -Uvh https://repo.whatap.io/centos/5/noarch/whatap-repo-1.0-1.noarch.rpm

## 패키지 설치
$ sudo yum install whatap-agent

에이전트는 사용자 애플리케이션의 모니터링 정보를 내부 IPC(TCP)를 통해 전달받고, 해당 데이터를 와탭 수집 서버로 전송하는 데이터 중계 프로세스입니다.

모니터링 시작하기

애플리케이션 서버를 다시 시작하면 에이전트가 정보 수집을 시작합니다.