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
'๐ backend > test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| docker -compose ๊ธฐ๋ฐ ๋ก์ปฌ DB ๋ชจ๋ํฐ๋ง ๊ตฌ์ถ(mysqld-exporter + prometheus + grafana) (0) | 2025.01.25 |
|---|---|
| Testcontainers ์ฝ์ง1 : ํ ์คํธ ์ปจํ ์ด๋ ์ฌ์ฌ์ฉ (0) | 2025.01.13 |
| K6 tutorial (0) | 2024.12.04 |
| nGrinder tutorial (0) | 2024.03.19 |
