Pinpoint 는 대규모 분산 시스템의 성능을 분석하고 문제를 진단, 처리하는 플랫폼이다.
Google Dapper 스타일의 추적 방식을 사용해, 분산된 요청을 하나의 트랜잭션으로 추적한다.
n계층 아키텍처로 변화함에 따라 시스템의 복잡도도 증가했다. 시스템의 복잡도가 높으면 장애나 성능 문제가 발생했을 때 해결이 어렵다.
복잡도가 높을수록 문제의 원인을 찾는 데 시간이 오래 걸리고 문제의 원인을 발견하지 못하는 경우도 많아진다.
따라서 하단과 같은 특징의 Pinpoint 가 탄생하였다.
$ git clone https://github.com/naver/pinpoint-docker.git
$ cd pinpoint-docker
$ git checkout tags/{tag} # 선택
$ docker-compose pull && docker-compose up -d
pinpoint-docker 에는 agent 연결 테스트용도로 QuickStart application 이 포함되어있다.
따라서 운영환경에선 제외해야한다.
$ vi docker-compose.yml
pinpoint-quickstart
, pinpoint-agent
주석 또는 제거$ wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.3.3/pinpoint-agent-2.3.3.tar.gz \
&& tar xvfz pinpoint-agent-*.tar.gz \
&& rm pinpoint-agent-*.tar.gz \
&& ln -sf pinpoint-agent-* pinpoint-agent
$ cd pinpoint-agent
$ vi pinpoint-root.config
하단 두가지 ip 를 pinpoint 가 설치된 서버 ip 로 변경
java -jar \
-javaagent:$AGENT_PATH/pinpoint-bootstrap-2.3.3.jar \
-Dpinpoint.agentId=app-1 \
-Dpinpoint.applicationName=app \
application.jar
.conf
파일 생성 후 하단 정보 세팅./application.jar
ex. application.conf
JAVA_OPTS="-javaagent:$AGENT_PATH/pinpoint-bootstrap-2.3.3.jar -Dpinpoint.agentId=app-1 -Dpinpoint.applicationName=app"
CATALINA_OPTS="$CATALINA_OPTS -javaagent:$AGENT_PATH/pinpoint-bootstrap-2.3.3.jar"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=app-1"
CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=app"