[Pyroscope] Grafana - Pyroscope

Pyroscope๋Š” Grafana์—์„œ ์ œ๊ณตํ•˜๋Š” ์ง€์†์  ํ”„๋กœํŒŒ์ผ๋ง(Continuous Profiling)์„ ์œ„ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋„๊ตฌ๋‹ค.
ํ”„๋กœํŒŒ์ผ๋ง์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ•œ๋‹ค๋Š” ์†Œ๋ฆฌ๋‹ค. ์„ฑ๋Šฅ/์‚ฌ์šฉ๋Ÿ‰ ๋ชจ๋‹ˆํ„ฐ๋ง์— ์žˆ์–ด์„œ๋Š” ๊ฐ€์žฅ ์ง‘์ฐฉ์Šค๋Ÿฐ ๋ฐฉ๋ฒ•๋ก ์ด๋‹ค.

๊ณ„์†ํ•ด์„œ ํ”„๋กœํŒŒ์ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ด์ค˜์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๋‹น์—ฐํžˆ ๋ฆฌ์†Œ์Šค๋ฅผ ์ข€ ์†Œ๋ชจํ•  ๊ฒƒ์ด๋‹ค.

๊ทธ๋ž˜๋„ ํ•œ๋ฒˆ ์„ธํŒ…ํ•ด๋‘๋ฉด ๋ฌธ์ œ์˜ ํ•ด๊ฒฐ ์ถ”์ ์€ ๊ต‰์žฅํžˆ ํŽธ๋ฆฌํ•ด์งˆ ์ˆ˜ ์žˆ๋‹ค.


์ด๋Ÿฐ ์‹์œผ๋กœ ์“ด๋‹ค. Pyroscope ์„œ๋ฒ„๋ฅผ ๋„์›Œ๋„ฃ๊ณ  ๊ทธ๋ƒฅ ๊ฑฐ๊ธฐ๋‹ค๊ฐ€ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋ณด๊ณ ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.




Docker๋กœ ์‹คํ–‰

Pyroscope๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์„ค์น˜/์‹คํ–‰ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค. linux๋ผ๋ฉด ๋ฐ”๋กœ ์‹คํ–‰ํŒŒ์ผ์„ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๊ณ , docker์—์„œ ๋„์šธ ์ˆ˜๋„ ์žˆ๊ณ , k8s์—์„œ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

์ผ๋‹จ ์—ฌ๊ธฐ์—์„œ๋Š” Docker๋กœ ์‹คํ–‰ํ•ด๋ณด๊ฒ ๋‹ค.

๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•œ๋‹ค.

sudo docker pull grafana/pyroscope:latest
sudo docker network create pyroscope-demo
sudo docker run --rm --name pyroscope --network=pyroscope-demo -p 4040:4040 grafana/pyroscope:latest

๊ทธ๋ž˜์„œ ์ด๋ ‡๊ฒŒ ๋ฐฐ๋„ˆ๊ฐ€ ๋œจ๋ฉด ์ž˜ ์‹คํ–‰๋œ ๊ฒƒ์ด๋‹ค.

ํ—ฌ์Šค์ฒดํฌ๋Š” ๋‹ค์Œ ๊ฒฝ๋กœ๋กœ ํ•  ์ˆ˜ ์žˆ๋‹ค.




ํŽ˜์ด์ง€ ์ ‘์†

4040 ํฌํŠธ๋กœ ์ ‘์†์„ ํ•˜๋ฉด ๋ฐ”๋กœ ์ œ์–ด ํŽ˜์ด์ง€๊ฐ€ ๋œฌ๋‹ค.

๋ณ„๋‹ค๋ฅธ ์„ธํŒ…์„ ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด pyroscope๊ฐ€ ์‹คํ–‰๋œ ํ™˜๊ฒฝ์˜ ํ”„๋กœํŒŒ์ผ๋งŒ์„ ๋ณด์—ฌ์ค„ ๊ฒƒ์ด๋‹ค.
๊ทธ๋ƒฅ ๊ธฐ๋ณธ์œผ๋กœ ๋ณด์—ฌ์ฃผ๋Š”๊ฑฐ๊ธด ํ•œ๋ฐ, ์• ์ดˆ์— ์‹ค์ œ ์‹คํ–‰ํ™˜๊ฒฝ์—์„œ ์ด๊ฑธ ๋„์šธ ์ผ์€ ์ž˜ ์—†์„ํ…Œ๋‹ˆ ๊ฑฐ์˜ ์žฅ์‹์ด๋‹ค.

Client๊ฐ€ ์„ค์ •๋˜์—ˆ์„ ๊ฒฝ์šฐ์—”, ์ € ์ตœ์ƒ๋‹จ ํƒญ์„ ๊ณจ๋ผ์„œ ์ˆ˜์น˜๋ฅผ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค.

์ด๋Ÿฐ ์‹์œผ๋กœ ์‹œ๊ฐํ™”๋œ๋‹ค. ์ด๊ฑด ์†Œ๋ชจํ•œ CPU time์— ๋Œ€ํ•œ ํ”„๋กœํŒŒ์ผ์ด๋‹ค. ํ•จ์ˆ˜ ๋‹จ์œ„๋กœ ์ธก์ •๋œ๋‹ค.


์šฐ์ƒ๋‹จ ํƒญ์„ ์กฐ์ž‘ํ•˜๋ฉด ์กฐํšŒ ๋ฒ”์œ„๋ฅผ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.




์–ธ์–ด๋ณ„ Client Setup

Java. dotnet, Go, Rust, Python, Ruby ์ •๋„์˜ ๋ฉ”์ด์ €ํ•œ ์–ธ์–ด๋“ค์€ Client๋ฅผ ๊ณต์‹์œผ๋กœ ์ œ๊ณตํ•œ๋‹ค.

Go
https://blog.naver.com/sssang97/223415591377

Rust
https://blog.naver.com/sssang97/223415608414



์ฐธ์กฐ
https://github.com/grafana/pyroscope