본문 바로가기
Server

PinPoint

by Ahngyuho 2025. 2. 21.

https://pinpoint-apm.gitbook.io/pinpoint/want-a-quick-tour/overview

 

Overview | Pinpoint

ServerMap - Understand the topology of any distributed systems by visualizing how their components are interconnected. Clicking on a node reveals details about the component, such as its current status, and transaction count.

pinpoint-apm.gitbook.io

 

Pinpoint: 국내 기업이 만든 오픈소스 APM (Application Performance Monitoring) 플랫폼

개요

Pinpoint는 자바 애플리케이션의 성능을 분석하고 문제를 진단하는 오픈소스 APM 플랫폼입니다. 마이크로서비스 환경에서 API 서버 간의 관계를 시각화하여 보여주며, Jaeger와 유사하지만 Java 애플리케이션에 최적화되어 있습니다.


Pinpoint 구성 요소

  1. Pinpoint Agent
    • 애플리케이션의 성능 관련 지표를 수집하고 Collector로 전달
    • Java 애플리케이션과 함께 실행되는 jar 파일로 배포됨
  2. Pinpoint Collector
    • Agent에서 수집한 데이터를 HBase에 저장
    • Collector -> HBase -> Zookeeper 구조로 데이터 관리
  3. Pinpoint Web UI
    • 수집된 성능 데이터를 웹 UI를 통해 시각적으로 제공

환경 구성

1. 서버 구성

  • Spring Boot 애플리케이션 서버
  • DB 서버
  • Pinpoint Server (Collector & Web UI)

환경 호환성

  • Spring Boot 3.x.x  JDK 17
  • Pinpoint Agent  JDK 17
  • HBase 1.2.7  JDK 8 필요 (Collector에서 사용)

 

Pinpoint 설치 및 설정

1. Pinpoint Collector 설치

apt update
	
apt install -y openjdk-8-jdk
	
wget https://archive.apache.org/dist/hbase/1.2.7/hbase-1.2.7-bin.tar.gz
tar zxvf hbase-1.2.7-bin.tar.gz

	
	
vi ./hbase-1.2.7/conf/hbase-env.sh
28 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
44 # export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
47 # export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:Per    mSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheS    ize=256m"
48 # export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_    OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:Reserv    edCodeCacheSize=256m"

./hbase-1.2.7/bin/start-hbase.sh
	
wget https://raw.githubusercontent.com/pinpoint-apm/pinpoint/master/hbase/scripts/hbase-create.hbase
	
./hbase-1.2.7/bin/hbase shell ./hbase-create.hbase
	
wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.3.3/pinpoint-collector-boot-2.3.3.jar
nohup java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-collector-boot-2.3.3.jar > collector.log 2> collector-error.log &

 

2. Pinpoint Web UI 설치

wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.3.3/pinpoint-web-boot-2.3.3.jar
nohup java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-web-boot-2.3.3.jar > web.log 2> web-error.log &

 

 

Pinpoint Agent 설치 및 적용

1. Pinpoint Agent 설치

apt update
	
apt install -y openjdk-17-jdk
	
wget https://repo1.maven.org/maven2/com/navercorp/pinpoint/pinpoint-agent/3.0.1/pinpoint-agent-3.0.1.tar.gz
tar zxvf pinpoint-agent-3.0.1.tar.gz

vi ./pinpoint-agent-3.0.1/profiles/release/pinpoint.config
23 profiler.transport.grpc.collector.ip=서버ip

 

2. Spring Boot 애플리케이션과 Pinpoint Agent 실행

export PINPOINT_AGENT_PATH=./pinpoint-agent-3.0.1 java -javaagent:$PINPOINT_AGENT_PATH/pinpoint-bootstrap.jar \ -Dpinpoint.agentId=app-agent-id \ -Dpinpoint.applicationName=app-name \ -jar my-spring-boot-app.jar

 

 

추가 고려 사항

  • 성능 테스트 도구 Locust 활용 가능
  • Collector, Web, 부하 테스트 서버를 각각 분리 배포하는 것이 성능상 유리

 

결과 화면 

 

 

 

 

JVM 은 Heap 영역에 대한 관리가 필요! 그래서 Inspector 부분에 들어가면 자바에 특화된 성능 지표를 확인할 수 있습니다.

 

 

 

'Server' 카테고리의 다른 글

동시성 문제  (0) 2025.02.26
CQRS  (0) 2025.02.19
웹 소켓(Web Socke!)  (0) 2025.02.17
멀티파트 폼 데이터(Multipart Form Data)  (0) 2025.01.11
Spring boot 애플리케이션 ec2에 jar로 배포  (0) 2023.07.23