본문 바로가기

Stress Test

[Pinpoint] 개념

이번 장에서는 Pinpoint에 대한 간단한 개념을 알아보고 다음 장부터 진행하는 APM 환경 구축을 위한 개념도를 그려보도록 한다.


Pinpoint는 네이버에서 만든 대규모 APM 플랫폼이다.
이보다 더 많은 정보가 필요하다면 필자의 어설픈 설명보다는 아래의 공식문서를 확인해보면 좋을듯하다. 필자는 APM 역시 Docker 환경에서 구축하려고 한다. (확실히 Docker로 구축하면 처음에는 힘들지만 추후에 문서작성을 위한 재현은 참 편하다.)


지금부터 '필자가 로컬에 구축하려하는 APM 환경'과 '상용 Pinpoint서버와 실제 서비스 서버 환경'에서 어떠한 방식으로 연동할 것인지 그림을 그려볼 것이다. 그림을 그리기 이전에 Pinpoint Docker Github (링크) 프로젝트에 있는 세부 프로젝트에 대한 이해가 필요하다. 물론 문서에 자세하게 나와있지만 간략하게 짚어보고 넘어간다. 빠르게 확인하기 위해 몇가지 태그를 준비하였다.

태그

  • (생략): 실제 APM 환경에서는 필요없는 프로젝트
  • (Agent): Agent를 구축하기 위한 프로젝트. 감시당하는(?) 서비스가 있는 환경에서 실행된다.
  • (Server): Server를 구축하기 위한 프로젝트. Agent로 부터 데이터를 받아서 관리 및 모니터링하는 서버에서 실행된다.

Pinpoint Docker Github 프로젝트

  • (생락) pinpoint-agent-attach-example: 실제 프로젝트에 붙이는 방법을 제공하는 예시 프로젝트.
  • (Agent) pinpoint-agent: 우리의 서비스에서 데이터를 뽑아서 Pinpoint 서버로 전송하는 역할을 한다.
  • (Server) pinpoint-collector: Agent로 부터 데이터를 받아오는 엔트리포인트. Pinpoint 서버의 가장 앞단에서 데이터를 받아온다.
  • (Server) pinpoint-flink: 공식 문서에는 Optional, 즉 추가사항으로 되어있다. 어플리케이션 검사관이며 추가 기능을 사용하기 위해서 사용된다고 되어있다. flink를 통한 추가 기능 사용은 추후에 자세하게 살펴볼 것이다.
  • (Server) pinpoint-hbase: collector가 agent로 부터 받은 데이터를 저장하는 레지스트리
  • (Server) pinpoint-mysql: 알람 기능을 사용하기위한 레지스트리. 필수 사항이 아닌 선택 사항이며 알람 기능 또한 알아볼 예정이다.
  • (생략) pinpoint-quickstart: attach-example가 예제 였다면 quickstart은 샘플 프로젝트다. 아무런 설정없이 저장소의 모든 프로젝트를 받아서 실행시키면 pinpoint 서버는 quickstart 프로젝트를 모니터링한다.
  • (Server) pinpoint-web: 모니터링 가능한 웹페이지를 제공하는 프로젝트.
  • (Server) pinpoint-zookeeper: 분산 코디네이션 서비스를 제공하는 오픈소스 프로젝트. 자세한 설명이 궁금하다면 여기 (링크)를 눌러서 확인한다.

서버 환경

지금부터 프로젝트들 간에 어떻게 통신을 하고 우리에게 데이터가 보여지는지 그려볼 것이다. Collector & MySQL & Flink 간의 통신 방식은 공식문서에 자세한 설명이 나와있지 않아서 여러 문서들을 짜집기하여 필자의 추측으로 그려보았다.

  • 도커를 사용하지 않았을 경우 아래의 이미지와 같이 구축된다.

  • 도커를 사용하는 경우 아래의 이미지와 같이 구축된다.

  • 로컬 환경에서 구축하는 경우 아래의 이미지와 같이 구축된다.
    로컬 환경 구축의 경우 다음 장에서부터 구축 방법을 살펴볼 것이다.


이번 장에서는 Pinpoint의 간략한 개념과 앞으로 구축해 볼 Local 환경에서의 Pinpoint Server와 Pinpoint Agent의 구성도를 살펴보았다.
다음 장부터는 Local 환경에 Pinpoint Server와 Pinpoint Agent를 구축해보도록 한다.

'Stress Test' 카테고리의 다른 글

[부하 테스트] Jmeter 상세 설정  (0) 2022.01.22
[부하 테스트] Jmeter 설정  (0) 2022.01.22
[부하 테스트] 개요  (0) 2021.12.29
[Pinpoint] 로컬 Agent 구축  (0) 2021.12.29
[Pinpoint] 로컬 서버 구축  (0) 2021.12.28