OpenTracing은 분산 추적 및 모니터링을 위한 애플리케이션 및 OSS 패키지를 위한 오픈 표준이다.
Cloud Native Computing Foundation에서 나온 Uber 기술로 부터 나온 분산 추적 시스템인
Jaeger 의 HotROD 애플리케이션을 통해 OpenTracing Demo 를 수행해보았다.
OpenTracing : http://opentracing.io/
OpenTracing
Quick Start : https://medium.com/opentracing/take-opentracing-for-a-hotrod-ride-f6e3141f7941
데모 수행 환경
1. Go toolchain
- 1.7 이하 버전 사용 시 "/bin/sh: 1: glide: not found" 라는 에러 발생
- 1.11 ~ 이상 버전 사용시 또 에러남
- 필자는 1.10.4 버전 사용 시 정상 동작
필자는 Python 예제를 사용하여 동작시켰음
- OpenTracing Git (Python) : https://github.com/opentracing/opentracing-python
- OpenTracing Git (Go) : https://github.com/opentracing/opentracing-go
1. 리눅스 환경에 Go 설치
1.1 다운 받았던 go 설치 파일을 /usr/local 에 압축 해제
sudo tar -C /usr/local -xzf go1.10.4.linux-amd64.tar.gz
1.2 GOPATH 설정 (미리 파일 수정을 통해 설정해놔서 사진엔 없음)
export GOPATH=$HOME/CNCF/workspace
1.3 PATH 설정
export PATH="$PATH:$GOPATH/bin"
1.4 설정 확인
go env
(선택) 1.5 GOPATH 설정 영구 저장
vi ~/.bashrc
아래 내용 추가
export GOPATH=$HOME/
export PATH="$PATH:$GOPATH/bin"
2. Start Jaeger
추적 결과를 확인하고 분석하기 위해 오픈 소스 분산 추적 시스템인 Jaeger를 사용한다.
설정했던 GOPATH에서
Jaeger Backend를 Docker 이미지로 실행
docker run -d -p6831 : 6831 / udp -p16686 : 16686 jaegertracing / all-in-one : latest
컨테이너가 시작되면 브라우저에서
http://127.0.0.1:16686/ 를 열어 Jaeger UI를 켬
이 UI에서 할 수 있는 작업은 아직 없다. HotROD 어플리케이션을 사용하여 추적을 분석해야한다.
3. HotROD 실행
Git Jaeger : https://github.com/jaegertracing/jaeger
3.1 디렉토리 생성
mkdir -p $GOPATH/src/github.com/jaegertracing
3.2 Git clone
cd $GOPATH/src/github.com/jaegertracing
git clone https://github.com/jaegertracing/jaeger.git
cd jaeger
3.3 make install
make install
원래 PATH 설정을 export PATH=$PATH:/usr/local/go/bin 으로 했었다가
"/bin/sh: 1: glide: not found" 이런 에러가 계속 떠서 위와 같이 바꿨더니 정상실행됨
[에러 내용]
$ make install
/bin/sh: 1: glide: not found
glide install
make: glide: Command not found
Makefile:160: recipe for target 'install' failed
make: *** [install] Error 127
3.4 go run
cd examples/hotrod
go run ./main.go all
완료!
그럼 http://127.0.0.1:8080 에 접속했을 때 아래와 같이 뜸
환경 설정 끝!
Python을 통한 테스트는 다음 포스팅에~~~
ERROR 참고자료 : https://github.com/evilsocket/xray/issues/4
GO 설치 참고자료 : http://imcreator.tistory.com/36
GOPATH 참고자료 : http://minooz.tistory.com/175
'Programming > Etc.' 카테고리의 다른 글
[GitHub] GitHub 에 폴더 올리기 (0) | 2019.05.31 |
---|---|
[OpenTracing] Jaeger UI를 이용한 분산 추적 (2) (0) | 2018.09.21 |
[Qt] setPixmap 화면 업데이트 안되는 문제 (1) | 2018.07.12 |
Wrapper 개념 (4) | 2017.07.28 |
[MFC] 3. MFC 프로그램 기본 구조 및 MFC 기초 클래스 (0) | 2017.01.02 |