1편에 이어 이제 핀포인트를 설치해보자.
참고로, 오픈소스 버전의 핀포인트는 무료이다.
1. Hbase 설치
메트릭들을 저장하는 DB이다. 현재는 2.x대 버전이 주로 쓰이지만 핀포인트에서 2.x를 쓰려면 모듈을 따로 설치해야 하기에 1.2.7을 설치하기로 했다.
여기 에서 옛 hbase들을 다운 받을 수 있다.
폴더 압축을 해제해준 후 (tar xzvf hbase-1.2.7-bin.tar.gz 로도 풀 수 있고, 그냥 더블클릭으로도 해제할 수 있다.)
bin폴더로 이동한 다음
./start-hbase.sh
를 입력하여 hbase를 실행해준다.
그 후, 아래 명령어로 hbase쉘에 들어가준다.
./hbase shell
쉘 내부에서 status를 쳐서 정상적으로 출력되는지 확인하거나
http://localhost:16010/master-status 로 들어가서 제대로 웹 UI가 뜨는 지 확인해본다.
정상적으로 출력된다면 핀포인트에서 제공해주는 Hbase 스키마 생성 스크립트를 실행한다.
위 사진과 같이 잘 실행되었다면 이제 다음 단계로 넘어가자.
우선, 여기 에서 핀포인트 2.3.3을 받는다.
pinpoint-collector-boot-2.3.3.jar, pinpoint-web-boot-2.3.3, pinpoint-agent-2.3.3.tar.gz를 받아주면 된다.
2. PinPoint Collector 설치
Agent에서 받은 메트릭을 Hbase에 저장하는 역할을 한다.
java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-collector-boot-2.3.3.jar
위 명령어로 Collector를 실행시켜 준다.
3.PinPoint Web 설치
수집한 메트릭들을 보기 쉽게 보여주는 대시보드 역할을 한다.
java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-web-boot-2.3.3.jar
--server.port={포트번호}를 맨 뒤에 추가하면 포트를 설정할 수 있다.(뭐, 당연히 -Dserver 이런식으로 써도 되긴 하다.)
실행이 정상적으로 되었다면, 8080포트 (혹은 자신이 설정한 포트)에 핀포인트 웹이 떠있는걸 볼 수 있다.
4. 핀포인트 에이전트와 함께 서버 실행
이제, 핀포인트 에이전트와 서버만 같이 실행시켜주면 웹에서 서버가 실행되는 것을 모니터링 할 수 있을 것이다.
(도커를 써서 배포를 한다면, 다른 글을 참고하는게 좋을 것 같고..)
jar파일을 직접 실행한다면
java -jar -javaagent:{pinpoint agent가 설치된 경로}/pinpoint-bootstrap-2.3.3.jar -Dpinpoint.applicationName={원하는 이름} -Dpinpoint.agentId=test-agent {빌드한 jar파일}
이런식으로 실행할 수 있다.
JVM변수를 설정하는 것 이기에 인텔리제이 설정으로도 이걸 해결할 수 있다.
인텔리제이 IDE -> 프로젝트 Edit Configurations -> Modify options -> vm검색을 하면
위 사진과 같이 VM옵션을 넣을 수 있다.
해당 옵션란에 아래처럼 넣어주자.
-javaagent:/핀포인트 에이전트 경로/pinpoint-bootstrap-2.3.3.jar
-Dpinpoint.applicationName=TESTAPP3
-Dpinpoint.agentId=test-agent
-Dspring.profiles.active=local
그 후, IDE를 통해 프로젝트를 실행하면
이렇게 실행한 서버가 핀포인트 웹에 잡히게 된다.
발생한 문제
큰 문제가 하나 발생했다.
프로젝트를 실행하게 되면 핀포인트 관련 오류가 엄청나게 많이 뜨고 서버가 실행되었다.
프로젝트 자체 API에는 영향을 주지 않지만 핀포인트에서 메트릭을 수집하지 못하는 듯 했다. (API호출을 해도 메트릭이 웹에 뜨지 않았다.)
여기를 참고해보니, 스프링 부트 버전이 3.x여서 핀포인트 2.3.3에서 지원되지 않을 수 있겠다는 생각이 들었다..
우선 여기까지만 포스팅하고, 버전 변경을 좀 해봐야겠다..
참고
https://velog.io/@hellosesang/Pinpoint-%EC%84%A4%EC%B9%98-%EB%B0%A9%EB%B2%95
https://roopredev.tistory.com/9
https://velog.io/@gkdud583/pinpoint-ngrinder-%EC%82%BD%EC%A7%88-%EA%B8%B0%EB%A1%9D
'Spring' 카테고리의 다른 글
부하 테스트 하기 (4) - nGrinder 설치 및 스크립트 만들기 (0) | 2023.07.13 |
---|---|
부하 테스트 하기(3) -핀포인트 오류 잡기 (1) | 2023.07.13 |
부하 테스트 하기 (1) (1) | 2023.07.08 |
왜 Spring Scheduler를 사용할 때 트랜잭션이 정상적으로 수행되지 않을까? (0) | 2023.05.10 |
Jsoup으로 로그인 후 웹 사이트 크롤링 하기 (1) | 2023.05.09 |