Scavenger๋?
Naver DEVIEW 2023 - ๋น์ ์ ์ฝ๋๋ ์๊ฐ๋ณด๋ค ๋ง์ด ์ฃฝ์ด์๋ค. ๋ฐํ์์ | GITHUB
- ๋ฐํ์ Dead Code ๋ถ์ ๋๊ตฌ
- ๋ฉ์๋ ํธ์ถ ๊ธฐ๋ก์ ์์งํ์ฌ ์๊ฐํ
- Java Agent ๋ฐฉ์ ์ฌ์ฉ
=> ์ ์ง๋ณด์ ์ฉ์ด, ์ปดํ์ผ ๋ฐ ํ ์คํธ ์๋ ํฅ์!
์ปดํฌ๋ํธ
- Agent: ์ฝ๋ ๋ฒ ์ด์ค๋ฅผ ์ค์บํ๊ณ , ์ดํ๋ฆฌ์ผ์ด์ ๋ด ๋ฉ์๋ ํธ์ถ ์ ๋ณด๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก Collector์๊ฒ ๋ณด๋
- Collector: ์์ด์ ํธ๋ก ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ DB์ ์ ์ฅ
- API: DB๋ฅผ ์ฝ์ด, ์ฌ์ฉ์์๊ฒ ์๊ฐํ
์ค์นํ๊ธฐ
Database
H2 & MySQL ์ง์
๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋ฒ๋ฅผ ๋์ฐ๊ณ scavenger ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
Collector
1. Github์์ scavenger-collector-${version}.jar ํ์ผ ๋ค์ด
2. Configuration
java \
-Dspring.datasource.url=${JDBC_URL} \
-Dspring.datasource.username=${JDBC_USERNAME} \
-Dspring.datasource.password=${JDBC_PASSWORD} \
-Dspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver \
-Darmeria.port=8080 \
-jar scavenger-collector-${version}.jar
API
1. Github์์ scavenger-api-${version}.jar ํ์ผ ๋ค์ด
2. Configuration
java \
-Dscavenger.collector-server-url=${COLLECTOR_SERVER_URL} \
-Dspring.datasource.url=${JDBC_URL} \
-Dspring.datasource.username=${JDBC_USERNAME} \
-Dspring.datasource.password=${JDBC_PASSWORD} \
-Dspring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver \
-Dserver.port=8081 \
-jar scavenger-api-${version}.jar
Collector์ API ์๋ฒ๋ฅผ ๋์ด ํ, localhost:8081(or API_SERVER_NAME)์ผ๋ก ์ ์ํ๋ฉด ๋ฉ์ธํ๋ฉด ํ์ธ ๊ฐ๋ฅ!
Agent
1. ํ๋ก์ ํธ์ ์์ด์ ํธ ๋ค์ด
curl https://repo1.maven.org/maven2/com/navercorp/scavenger/scavenger-agent-java/1.0.3/scavenger-agent-java-1.0.3.jar -L -o scavenger-agent.jar
3. Project Run ์ต์ ์ง์
-javaagent:$PROJECT_DIR$/scavenger-agent.jar -Dscavenger.configuration=$PROJECT_DIR$/scavenger.conf
Agent - Collector ํต์ ์ด์ (Kubernetes)
Kubernetes ํ๊ฒฝ์ผ๋ก Collector์ API ์๋ฒ๋ ๋์ผํ Cluster, ์ดํ๋ฆฌ์ผ์ด์ (Agent)๋ ๋ค๋ฅธ Cluster์ ๋์์ ธ์์
Agent - Collector์ ํต์ ๋ถ๊ฐ
Caused by: java.io.IOException: FRAME_SIZE_ERROR: 4740180
Collector๋ฅผ Ingress-nginx๋ก ์๋น์ค ํ๊ณ ์์์ผ๋, ์ด๋ gRPC ํต์ ์ด ์ ๋จน์ง์๋ ๊ฒ์ผ๋ก ํ์ ...
Ingress-nginx๋ฅผ ์ฌ์ฉํ์ง ์๊ณ , Nodeport Service๋ก ๋์ฐ๊ณ , ์ง์ ๋ถ์ผ๋(https://{{๋๋ฉ์ธ}}:{{NODE_PORT}}) ์ ์์ ์ผ๋ก ํต์ !
ํ์ง๋ง Port๋ฅผ ๋ถ์ฌ์ ํต์ ํ๋ ๊ฒ ์์ฒด๊ฐ ๊ต์ฅํ uglyํ์ฌ ๋ค๋ฅธ ๋ฐฉ์ ํ์ ์ค...
(ingress-nginx์ gRPC ์ค์ ๋ํ ํด์ฃผ์์ผ๋ ๊ฒฐ๊ณผ๋ ๋์ผ ใ ใ )