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


(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

(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 &

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 조회 가능 목록


- Heap Usage
- Non Hea Usage
- JVM/System CPU Usage
- ransactions Per Second
- Active Request
- Total Thread
- Response Time
- Open File Descriptor
- Direct Buffer Count
- Direct Buffer Memory
- Mapped Buffer Count
- Mapped Buffer Memory
- Loaded Class Count
- Unloaded Class Count
- 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 |
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


(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

(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 &

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 조회 가능 목록


- Heap Usage
- Non Hea Usage
- JVM/System CPU Usage
- ransactions Per Second
- Active Request
- Total Thread
- Response Time
- Open File Descriptor
- Direct Buffer Count
- Direct Buffer Memory
- Mapped Buffer Count
- Mapped Buffer Memory
- Loaded Class Count
- Unloaded Class Count
- 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 |