[Pinpoint] 로컬 서버 구축

[Pinpoint] 로컬 서버 구축

이번 장에서는 로컬 환경에서 Pinpoint 서버를 구축하는 방법에 대해서 알아본다.

공식 Github 페이지 (링크)에는 Pinpoint에서 만든 Sample 프로젝트에 Pinpoint Agent를 붙이는 방식으로 docker-compose.yml 파일이 구성되어 있다. 이러한 방식은 실제 상용 서비스에서는 사용하기 부적합하므로

Pinpoint Server용 pinpoint-server-docker-compose.yml 파일과 Pinpoint Agent용 pinpoint-agent-docker-compose.yml 파일을 분리하는 방식으로 구성하였다. 이외의 방식은 전부 동일하다.

만약 Docker와 Docker Compose에 익숙하지 않다면 각각 공식 홈페이지를 방문하여 Docker와 Docker Compose와 친숙해지고 이 글을 읽도록 한다.

필자의 경우 공식 Github 페이지 (링크)에서 받은 파일의 docker-compose.yml 파일을 복사하여 필요없는 부분을 지우고 pinpoint-server-docker-compose.yml 파일을 만들었다. 아래의 파일은 공식 github 페이지에서 받은 docker-compose.yml 파일에서 주석처리해야하는 부분만 표시해두었다.

혹시 완성된 pinpoint-server-docker-compose.yml 파일이 필요하다면 아래의 파일을 다운로도 받도록 한다.

pinpoint-server-docker-compose.yml 8.6 kB

## Disable agent service # pinpoint-quickstart: # build: # context: ./pinpoint-quickstart/ # dockerfile: Dockerfile # container_name: "pinpoint-quickstart" # image: "pinpointdocker/pinpoint-quickstart" # ports: # - "${APP_PORT:-8080}:8080" # volumes: # - data-volume:/pinpoint-agent # environment: # JAVA_OPTS: "-javaagent:/pinpoint-agent/pinpoint-bootstrap-${PINPOINT_VERSION}.jar -Dpinpoint.agentId=${AGENT_ID} -Dpinpoint.applicationName=${APP_NAME} -Dpinpoint.profiler.profiles.active=${SPRING_PROFILES}" # networks: # - pinpoint # depends_on: # - pinpoint-agent ## Disable agent service # pinpoint-agent: # build: # context: ./pinpoint-agent/ # dockerfile: Dockerfile # args: # - PINPOINT_VERSION=${PINPOINT_VERSION} # container_name: "${PINPOINT_AGENT_NAME}" # image: "pinpointdocker/pinpoint-agent:${PINPOINT_VERSION}" # restart: unless-stopped # networks: # - pinpoint # volumes: # - data-volume:/pinpoint-agent # environment: # - SPRING_PROFILES=${SPRING_PROFILES} # - COLLECTOR_IP=${COLLECTOR_IP} # - PROFILER_TRANSPORT_AGENT_COLLECTOR_PORT=${PROFILER_TRANSPORT_AGENT_COLLECTOR_PORT} # - PROFILER_TRANSPORT_METADATA_COLLECTOR_PORT=${PROFILER_TRANSPORT_METADATA_COLLECTOR_PORT} # - PROFILER_TRANSPORT_STAT_COLLECTOR_PORT=${PROFILER_TRANSPORT_STAT_COLLECTOR_PORT} # - PROFILER_TRANSPORT_SPAN_COLLECTOR_PORT=${PROFILER_TRANSPORT_SPAN_COLLECTOR_PORT} # - PROFILER_SAMPLING_RATE=${PROFILER_SAMPLING_RATE} # - DEBUG_LEVEL=${AGENT_DEBUG_LEVEL} # - PROFILER_TRANSPORT_MODULE=${PROFILER_TRANSPORT_MODULE} # depends_on: # - pinpoint-collector

위 처럼 수정된 파일의 이름을 pinpoint-server-docker-compose.yml이라 가정하고 진행해본다.

수정된 파일이 있는 경로로 이동하여 아래의 커맨드를 입력한다.

$ docker-compose -f ./pinpoint-server-docker-compose.yml up -d

만약 정상적으로 수정이 되었다면 아래의 이미지와 같이 오류가 발생하지 않을 것이다.

Pinpoint web 접속

.env 파일을 수정하지 않았다면 localhost:9000으로 접속하면 아래와 같은 화면이 나올 것이다.

검색결과가 없는 것은 아직 Agent를 실행시키지 않았으므로 정상이다.

Pinpoint flink 접속

Flink 또한 .env 파일을 수정하지 않았다면 localhost:9001으로 접속하면 아래와 같은 화면이 나올 것이다.

이것으로 로컬 환경에서 Pinpoint 서버를 실행시켜보았다.

사실 Docker와 Docker Compose가 설치되어있다는 가정하에 필자가 올려둔 pinpoint-server-docker-compose.yml 파일을 읽어서 docker container를 실행시키는 것만으로 정상적으로 pinpoint server가 실행되었을 것이다.

다음 장에서는 우리의 서비스와 Pinpoint Agent를 연동하기 위한 docker-compose.yml 파일을 만들어보고 이번 장에서 실행시킨 pinpoint server에 정상적으로 데이터가 전달되는지 확인해본다.

from http://imprint.tistory.com/38 by ccl(A) rewrite - 2021-12-28 21:26:56