pinpoint architecture

pinpoint architecture

  • pinpoint agent : application monitoring metric 을 pinponit collector 에 전달
  • pinpoint collector : pinpoint agent 에서 받은 데이터를 HBase 에 저장
  • pinpoint web : HBase 에서 데이터를 조회해 Web UI 형태로 시각화된 모니터일 서비스를 제공

 

installation pinpoint

spring boot 3 는 pinpoint 2.5.1 부터 지원하기 때문에 참고하도록 하자!
(그리고 pinpoint agent, controller 는 버전을 동일하게 맞춰 사용하는 것을 권장한다.)
https://github.com/pinpoint-apm/pinpoint/issues/9599

[1] pinpoint web & collector

1. install HBase

(1) java 설치

sudo yum list java*
sudo yum install java-1.8.0-amazon-corretto-devel.x86_64

readlink -f /usr/bin/java # java 경로 확인
/usr/lib/jvm/java-1.8.0-amazon-corretto.x86_64/jre/bin/java

 

HBase java 호환 버전
pinpoint version 에 맞는 java version 설정하기

 

(2) HBase 설치

wget http://archive.apache.org/dist/hbase/1.2.7/hbase-1.2.7-bin.tar.gz
tar -zxvf hbase-1.2.7-bin.tar.gz

hbase version 1.x 로 선택

 

(3) hbase-1.2.7/conf/hbase-env.sh JAVA_HOME 설정 및 파일 주석 처리

# The java implementation to use.  Java 1.7+ required.
 export JAVA_HOME=/usr/lib/jvm/java-11-amazon-corretto.x86_64 # java 설치 경로
# Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"

 

(4) hbase-1.2.7/conf/hbase-site.xml 파일 수정

 <configuration>
	<property>
		<name>hbase.rootdir</name>
		<value>file:///home/ec2-user/pinpoint/data</value>
	</property>
	<property>
		<name>hbase.zookeeper.property.dataDir</name>
		<value>/home/ec2-user/pinpoint/zookeeper</value>
	</property>
</configuration>

 

(5) start hbase 

hbase-1.2.7/bin/start-hbase.sh

 

(6) hbase schema 설치

cd /home/ec2-user/pinpoint/hbase-1.2.7/bin
wget https://raw.githubusercontent.com/pinpoint-apm/pinpoint/master/hbase/scripts/hbase-create.hbase

 

TTL 값 데이터 유지 기간 7일로 변경
  • default : 365일(31536000s), 60일 (5184000s) 
sed 's/31536000/604800/' hbase-create.hbase > hbase-create-real.hbase
sed -i 's/5184000/604800/' hbase-create-real.hbase

 

 

(7) create hbase schema for pinpoint

  • bin directory 하위에서 실행
./hbase shell ./hbase-create-real.hbase

 

 

2. install pinpoint collector

HBase ver 1.2.x 는 Java8 만 호환이 가능하기 때문에 Java11 을 별도로 설치해서 환경 변수 설정을 해놓자.
# java 11 설치
sudo yum install java-11-amazon-corretto-devel.x86_64 -y

# 환경 변수 설정
sudo vim /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-11-amazon-corretto.x86_64
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar

 

(1) pinpoint collector 설치

wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.5.3/pinpoint-collector-boot-2.5.3.jar

 

(2) run pinpoint collector

nohup java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-collector-boot-2.5.3.jar &

 

inbound port 설정

 

3. pinpoint web 설치

(1) pinpoint web 설치

wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.5.3/pinpoint-web-boot-2.5.3.jar

 

(2) run pinpoint web

nohup java -jar -Dpinpoint.zookeeper.address=localhost pinpoint-web-boot-2.5.3.jar &

 

(3) pinpoint web 확인

  • [ipv4]:8080

2. pinpoint agent

pinpoint agent 와 pinpoint collector 는 version 을 동일하게 설정하도록 하자.

 

[1] pinpoint agent 설치

1. download pinpoint agent

wget https://github.com/pinpoint-apm/pinpoint/releases/download/v2.5.3/pinpoint-agent-2.5.3.tar.gz
tar -zxvf pinpoint-agent-2.5.3.tar.gz

 

2. pinpoint-agent-[version]/pinpoint-root.config 에서 collector ip 주소 변경

## collector ip 설정하기 (private ip 로 설정함)
profiler.transport.grpc.collector.ip=[collector ip]

 

3. run pinpoint agent

java -jar \
-javaagent:/home/ec2-user/pinpoint-agent-2.5.3/pinpoint-bootstrap-2.5.3.jar \
-Dpinpoint.agentId=member-api \
-Dpinpoint.applicationName=member-api \
-Dpinpoint.config=/home/ec2-user/pinpoint-agent-2.5.3/pinpoint-root.config \
-Dspring.profiles.active=prod \
/home/ec2-user/member-0.0.1-SNAPSHOT.jar

 

pintpoint 조회 가능 목록

  1. Heap Usage
  2. Non Hea Usage
  3. JVM/System CPU Usage
  4. ransactions Per Second
  5. Active Request
  6. Total Thread
  7. Response Time
  8. Open File Descriptor
  9. Direct Buffer Count
  10. Direct Buffer Memory
  11. Mapped Buffer Count
  12. Mapped Buffer Memory
  13. Loaded Class Count
  14. Unloaded Class Count
  15. Data Source

pintpoint call Tree 보는 법

  • pinpoint 메인 화면 우측 상단 scatter chart 범위 설정하고 페이지 이동하여 Call Stack 확인

 

Reference

'인프라 공방 > summary' 카테고리의 다른 글

nGrinder 로컬 테스트 구성을 위한 에러 기록  (0) 2024.03.29
nGrinder tutorial  (0) 2024.03.19
[인프라공방] HTTP Cache  (0) 2024.02.28