2024. 4. 2. 01:33ใBackend
ํ์ฌ ์ง์ธ ๋ถ๋ค๊ณผ ํฐ์ผํ ์ฌ์ดํธ ํ๋ก์ ํธ๋ฅผ ์งํ ์ค์ด๋ค.
GitHub - Tiketeer/Tiketeer-BE
Contribute to Tiketeer/Tiketeer-BE development by creating an account on GitHub.
github.com
ํด๋น ํ๋ก์ ํธ์ ๋ฉ์ธ ์ฃผ์ ๋ ๋ฐ๋ก '๋์์ฑ ์ด์ ํธ๋ค๋ง'์ธ๋ฐ, ์ด๋ฅผ ์ํด ๋ถํ ํ ์คํธ๋ฅผ ์งํํ ๊ณํ์ด ์๋ค.
์ด๋ฅผ ์ํด, ํด๋น ๊ธ์์๋ ์ฌ๋ฌ ๋ถํ ํ ์คํธ ํด ์ค ์ด๋ค ๊ฒ์ ์ ํํ ์ง ๊ณ ๋ฏผํ ๊ณผ์ ๊ณผ ์ต์ข ์ ์ผ๋ก ์ ํํ๊ฒ ๋ ํด์ ๋ํด ์๊ฐํ๊ณ ์ ํ๋ค.
ํ ์คํ ํด ์ ์ ์ ๊ณ ๋ ค ์ฌํญ
๋จผ์ ํ ์คํ ํด ์ ์ ์ ๊ณ ๋ คํ ์ฌํญ๋ค์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๊ธฐ๋ณธ์ ์ธ ๋ถํํ ์คํธ ์๋๋ฆฌ์ค ์์ฑ ๊ฐ๋ฅ์ฑ
- ์ฑ๋ฅ (์ถฉ๋ถํ ๋ถํ๋ฅผ ๋ง๋ค์ด ๋ผ ์ ์๋๊ฐ)
- Docker(Compose)๋ฅผ ํตํ ์๋ ํ๊ฒฝ ๊ตฌ์ฑ์ ๊ฐ๋ฅ์ฑ
- ๊ด๋ จ ๋ ํผ๋ฐ์ค
- Grafana์์ ์ฐ๋์ฑ
๊ณ ๋ ค๋ ๋ฐฉ์๋ค์ด ์ ์ฌํญ๋ค์ ๋ชจ๋ ๋ง์กฑํ ํ์๋ ์์ผ๋ ๋ง์ด ๋ง์กฑํ ์๋ก ๊ฐ์ฐ์ ์ ์ฃผ์๋ค.
Grafana๋ ์?
๋ถํํ ์คํธ ํด์ ์ ์ ํ๋๋ฐ Grafana์์ ์ฐ๋์ฑ์ ๋ถํ์ํ์ง ์๋๋ผ๊ณ ํ ์ ์๊ณ , ํ๋นํ ์๋ฌธ์ด๋ค.
๋ค๋ง ์ฌ๊ธฐ์์ Grafana๊น์ง ๊ณ ๋ คํ๋ ๊ฒ์ ์ดํ ํ๋ก์ ํธ์ ๊ฐ์์ฑ์ ์ํด Grafana๋ฅผ ๋์ ํ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํ๊ณ ์๊ณ , ๊ทธ๋ ๊ฒ ๋ ๊ฒฝ์ฐ ํ๋์ ์๊ฐํ ํด์ ํ์ฉํ์ฌ ๋ถํ ํ ์คํธ ๊ฒฐ๊ณผ๊น์ง ํ์ธ์ด ๊ฐ๋ฅํด์ง๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ ์ผ๋ฐ์ ์ธ ๋ถํํ ์คํธ ํด์ ์ ์ ํ๊ธฐ ์ํ ๊ณ ๋ ค ์ฌํญ์ ์๋์ง๋ง ํ๋ก์ ํธ์ ๋ฐฉํฅ์ฑ์ ์ํด ๊ณ ๋ ค๋๋ ์ฌํญ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
๋ฐฉ์ 1. nGrinder
nGrinder
Please post questions in Discussions not Issues. nGrinder 3.5.5-p1 version is now available. Check the changes at here. nGrinder is a platform for stress tests that enables you to execute script creation, test execution, monitoring, and result report gener
naver.github.io
nGrinder๋ ๋ค์ด๋ฒ์์ ๊ฐ๋ฐํ ์คํ์์ค๋ก, ๋ถํํ ์คํธ๋ฅผ ์ํ ๋ฐฉ๋ฒ๋ก ๊ณผ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ์๊ฐํ๋ฅผ ํจ๊ป ๋์์ ์ ๊ณตํ๋ ํด์ด๋ค.
nGrinder๋ ๊ฐ๋ฐ์๊ฐ ์์ฑํ ์คํฌ๋ฆฝํธ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๊ฒ ๋๋๋ฐ, Groovy, Jython(Python) ๋ฑ์ด ์ด์ฉ ๊ฐ๋ฅํ์ฌ ๊ธฐ์กด Java ํน์ Python์ผ๋ก ๊ฐ๋ฐํด์๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋ฌด๋ฆฌ ์์ด ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์๋ค.
์ค์ ๋ก ์๋ ๋งํฌ์๋ nGrinder์์ ์ง์ ์ ๊ณตํ๋ login ํ ์คํธ ์ฉ ์์ Groovy ์ฝ๋๊ฐ ์๋๋ฐ, ๊ทธ๋ฅ Java ์ฝ๋๋ผ๊ณ ํด๋ ๋ฌด๋ฐฉํ ์์ค์ด๋ค.
ngrinder/script-sample/test-with-login/login.groovy at master · naver/ngrinder
enterprise level performance testing solution. Contribute to naver/ngrinder development by creating an account on GitHub.
github.com
nGrinder๋ docker-compose๋ฅผ ํตํด ์๋ ํ๊ฒฝ ๊ตฌ์ฑ์ ์ํํ ์ ์๋ค.
์๋๋ ์ง์ ์์ฑํ docker-compose.yml ํ์ผ์ด๋ค.
// docker-compose.yml
services:
controller:
image: ngrinder/controller:3.5.5
restart: always
ports:
- 9000:80
- 16001:16001
- 12000-12009:12000-12009
volumes:
- ./ngrinder-controller:/opt/ngrinder-controller
agent1:
image: ngrinder/agent:3.5.5
restart: always
links:
- controller
agent2:
image: ngrinder/agent:3.5.5
restart: always
links:
- controller
agent3:
image: ngrinder/agent:3.5.5
restart: always
links:
- controller
agent4:
image: ngrinder/agent:3.5.5
restart: always
links:
- controller
๊ณต์ ํ์ด์ง ์์์ ์ธ๊ธํ๋ ํ์ฌ ๊ฐ์ฉ ๋ฒ์ ์ 3.5.5์ด๊ธฐ ๋๋ฌธ์ ๋ฒ์ ์ ์์ ๊ฐ์ด ๋ง์ถฐ์ฃผ์๊ณ , ํ ์คํธ์ ํ์ฉํ agent์ ์๋ฅผ 4๋ก ๋ง์ถฐ์ฃผ๊ธฐ ์ํด agent๋ค์ ์์ ๊ฐ์ด ๊ตฌ์ฑํด์ฃผ์๋ค. ๊ผญ 4๊ฐ์ผ ํ์๋ ์์ผ๋ฉฐ, ํ๋ ์ด์์ ์ง์ ํด์ฃผ๊ธฐ๋ง ํ๋ฉด ๋ฌธ์ ์๋ค.
์์ฒ๋ผ docker-compose.yml ํ์ผ์ ์์ฑํ ๋ค docker-compose up -d ๋ช ๋ น์ด๋ฅผ ์คํ์ํค๋ฉด ์ผ๋ง ๋ค์ localhost:9000์ ์ ์์ด ๊ฐ๋ฅํ๋ค. (์ด ๋ ํฌํธ ๋ฒํธ๋ ์ค์ ํ๊ธฐ ๋๋ฆ)
์ด๊ธฐ ID, PW๋ ๋ชจ๋ admin์ด๋ฉฐ, ์ค์ ๋ถํํ ์คํธ๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ์ด๋ฏธ ํ๋ฅญํ ํ๊ธ ๋ ํผ๋ฐ์ค๋ค์ด ๋ง๊ธฐ ๋๋ฌธ์ ๋งํฌ๋ก ๋์ฒดํ๋ค.
[Test] nGrinder์ ์ด์ฉํ ์ฑ๋ฅํ ์คํธ
nGrinder๋ก ์ฑ๋ฅ ํ ์คํธ
velog.io
์ง์ nGrinder๋ฅผ ์ฌ์ฉํด๋ณธ ๋ค ๋๋ ์ฅ์ ์ ์๋์ ๊ฐ๋ค.
๋จผ์ ์ ์ ์ด ๊ฐ๋จํ๋ค. ํ์ํ ์์กด์ฑ์ nGrinder๊ฐ ๋์ด๊ธฐ ๋๋ฌธ์, compose ํ์ผ์ ํตํด nGrinder๋ฅผ ์คํ์ํจ ๋ค ์ฌ์ ์ ์์ฑํ or ์ ๊ท ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ๊ธฐ๋ง ํ๋ฉด ํ ์คํธ๋ฅผ ์ํ ์ค๋น๊ฐ ๋์ด ๋๋ค.
๋ํ ์น๋ธ๋ผ์ฐ์ UI ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํ๊ธฐ ์ฝ๋ค๋ ์ฅ์ ์ด ์๋ค.
๋ง์ง๋ง์ผ๋ก ๋ค์ด๋ฒ์ ์คํ์์ค์ด๋ค๋ณด๋ ํ๊ตญ์ด ๋ ํผ๋ฐ์ค๊ฐ ๊ฝค ๋ง๋ค๋ ์ ๋ ์ฅ์ ์ด ๋ ์ ์์ ๊ฒ ๊ฐ๋ค.
๋ค๋ง ์์ฌ์ด ์ ๋ ์์๋ค.
๋จผ์ nGrinder๋ ๋ก์ปฌ ํ๊ฒฝ ๊ธฐ์ค์ผ๋ก, ํฐ ๊ท๋ชจ์ ๋ถํ๋ฅผ ๋ง๋ค์ด๋ด๊ธฐ๋ ์ฝ์ง ์์๋ค. ์กฐ๊ธ๋ง ๊ท๋ชจ๊ฐ ์ปค์ ธ๋ ๊ณง๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ์ผ๋ก ์ธํด ํ ์คํธ๊ฐ ์คํจํ๊ณค ํ์๋ค. ์ข ์ฐพ์๋ณด๋ ์ด๊ฑด ์์ฒด UI๋ฅผ ์ ๊ณตํ๋ ํด๋ค์ ํ๊ณ๋ก๋ ๋ณผ ์ ์๋ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์๋ค.
๋๋ฒ์งธ๋ ์๊ฐํ์ ์์ฌ์์ด๋ค. ๋ค๋ฅธ ํด์ ๋นํด nGrinder์ ํ ์คํธ ๊ฒฐ๊ณผ ์๊ฐํ๋ ์ข ์์ฝ๋ค๋ ์๊ฐ์ด ๋ค์๋ค.
๋ง์ง๋ง์ผ๋ก๋ Grafana์์ ์ฐ๋์ด ์ฝ์ง ์์๋ค. ๋ฌผ๋ก ์์ฒด ์๊ฐํ๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ ๊ฒ์ ๋ง์ง๋ง ์ ์ด์ ๊ณ ๋ คํ๊ธฐ๋ก ํ ์ฌ์์๋ ๋ง์ง ์๋ ๊ฒ์ด ์ฌ์ค์ด๋ค.
๋ฐฉ์ 2. k6 + influxDB + Grafana
Load testing for engineering teams | Grafana k6
k6 is an open-source tool and cloud service that makes load testing easy for developers and QA engineers.
k6.io
Grafana k6๋ Javascript ๊ธฐ๋ฐ์ผ๋ก ์คํฌ๋ฆฝํธ๋ฅผ ์์ฑํ ์ ์๋ ๋ถํํ ์คํธ ํด์ด๋ค.
๋ ๋์ ์ฑ๋ฅ์ ์ํด ์น๋ธ๋ผ์ฐ์ ๊ธฐ๋ฐ์ UI๋ ์ ๊ณตํ์ง ์์ผ๋ฉฐ, ๊ฐ์ ์ด์ ๋ก Go ์ธ์ด ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ค.
์๋๋ ๊ณต์ ํํ์ด์ง์์ ์ ๊ณตํ๋ ๋ก๊ทธ์ธ ํ ์คํธ ์์์ธ๋ฐ, js ์ง์์ด ์๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋ฐ๋ก ์ดํดํ ์ ์์ ์ ๋๋ก ์คํฌ๋ฆฝํธ ์์ฑ์ ์์ด ์ง๊ด์ฑ์ ๊ฐ์ง ์ ์๋ค.
import http from 'k6/http'
import { check, sleep } from 'k6'
export default function () {
const data = { username: 'username', password: 'password' }
let res = http.post('https://myapi.com/login/', data)
check(res, { 'success login': (r) => r.status === 200 })
sleep(0.3)
}
k6๋ ์์ฒด ์๊ฐํ๋ฅผ ์ ๊ณตํ์ง ์๊ธฐ ๋๋ฌธ์ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ํ ๊ณณ์ ๋ด๋ณด๋ผ ์ ์๊ณ ์ด๋ฅผ ํตํด ๋ค๋ฅธ ํด์ ์ด์ฉํ์ฌ ์๊ฐํ๊ฐ ๊ฐ๋ฅํ๋ค.
์ด ๋ ๊ฐ์ฅ ๋ง์ด ๋ฑ์ฅํ๋ ์ธํธ๊ฐ ๋ฐ๋ก k6 + InfluxDB + Grafana์ด๋ค.
k6์์ ์ํํ ๋ถํํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ InfluxDB๋ก ๋ด๋ณด๋ธ ๋ค, Grafana์์ datasource ์ค์ ์ ํตํด InfluxDB์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ๋์๋ณด๋๋ฅผ ์์ฑํ๋ ํ๋ก์ฐ๋ฅผ ๊ฐ๋๋ค. ์ด๋ ๊ฒ ๋ง๋ค์ด์ง ๋์๋ณด๋๋ ์๋์ ๊ฐ์ ํํ๋ฅผ ๊ฐ๋๋ค.
์ด๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ ๋ํ ๋ ํผ๋ฐ์ค๋ค์ด ๋ง๊ธฐ ๋๋ฌธ์ ๋งํฌ๋ก ๋์ฒดํ๋ค.
Grafana k6์ผ๋ก ๋ถํ ํ ์คํธํ๊ณ ์๊ฐํํ๊ธฐ
k6์ผ๋ก ๋ถํํ ์คํธ๋ฅผ ํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ Grafana๋ก ์๊ฐํํด๋ณด์.
velog.io
ํด๋น ๊ตฌ์ฑ์ ์ง์ ์ฌ์ฉํด๋ณธ ๋ค ๋๋์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
์ฐ์ ๋ก์ปฌ ๊ธฐ์ค์ผ๋ก nGrinder์ ๋น๊ตํ์ ๋, k6๋ฅผ ํตํ ๋ถํํ ์คํธ๊ฐ ๋ ๋ง์ vUser๋ฅผ ๋ค๋ฃฐ ์ ์์๋ค. nGrinder์์ 4๊ฐ์ agent์ ๊ฐ๊ฐ 200๊ฐ์ vUser๋ฅผ ํ ๋นํ์ฌ ํ ์คํธ ํด๋ณธ ๊ฒ์ด ์ต๋์ธ ๋ฐ๋ฉด, k6์์๋ vUser๊ฐ 1000์ธ ์ํฉ์์๋ ๋๋ํ ํ ์คํธ๊ฐ ๊ฐ๋ฅํ๋ค.
๋ํ ๋์๋ณด๋์ ์ถ๋ ฅ๋๋ ๋ฐ์ดํฐ๊ฐ ๋ ๋ค์ฑ๋กญ๊ณ ๋์ ์ ๋ค์ด์จ๋ค๋ ์ฅ์ ์ด ์์๋ค.
๋ง์ง๋ง์ผ๋ก ๋ ํผ๋ฐ์ค ๋ํ nGrinder ๋งํผ์ ์๋๋ผ๋, ๊ณต์ ๋ฌธ์๊ฐ ์๋์ด์์ด ์ด๋ ต์ง ์๊ฒ ํ ์คํธ๋ฅผ ์งํํ ์ ์์๋ค.
ํ์ง๋ง ์์ฌ์ด ์ ๋ ์์๋ค.
์ด ๊ตฌ์ฑ์์๋ ํ์์ ์ผ๋ก ๊ฐ๋ฐ์๊ฐ ์ง์ ์๋์ผ๋ก ๊ตฌ์ฑ์ ์๋ฃํด์ฃผ์ด์ผ ํ๋ค๋ ๊ฒ์ด๋ค.
๋ ํผ๋ฐ์ค ๋๋ถ๋ถ์ด InfluxDB - Grafana ์ฐ๋์ ์๋์ผ๋ก ์งํํ๊ณ ์์๋๋ฐ, ์ด๋ ๋๋ฌด ํฐ ์์๋ผ๊ณ ์๊ฐ๋์ด ์๋ํ ๋ฐฉ์์ ๋ฆฌ์์นํ๋ค. Grafana์ Provisioning ๊ธฐ๋ฅ์ ํตํด ์ด๋ฅผ ๋ฌ์ฑํ๊ณ ์ ํ๋๋ฐ, ์ง์ ํด๋ณด๊ณ ์๊ฒ ๋ ๊ฒฐ๋ก ์ "๋ถ๊ฐ๋ฅํ๋ค" ์๋ค. ์ด๊ฒ ๋ถ๊ฐ๋ฅํ ์ด์ ๋ Grafana - InfluxDB๋ฅผ ์ฐ๋ํ๊ธฐ ์ํด์๋ InfluxDB ์ธก์์ accessToken์ ์ง์ ๋ฐ๊ธ ํ ์ด๋ฅผ Provisioning ํ์ผ์ ์ถ๊ฐํด์ฃผ์ด์ผ ํ๋๋ฐ, ์ด ๊ณผ์ ์์ ์ด์ฉ ์ ์์ด ์ง์ InfluxDB๋ฅผ ๋ง์ ธ์ผํ๋ ์์๊ฐ ์์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฒฐ๊ตญ ์๋ํ๊ฐ ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ํด๋น ๋ฐฉ์์ ์ฐ์ ์์๋ฅผ ๋ง์ด ๋ฎ์ถ ์ ๋ฐ์ ์์๋ค.
๋ฐฉ์ 3. k6 + Prometheus + Grafana
์์ ๋ฐฉ์ 2์ ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํด๊ฒฐํ ์ ์์๊น ๊ณ ๋ฏผํ๋ค๊ฐ, InfluxDB ๋์ Prometheus๋ฅผ ์ถ๊ฐํ๋ ๊ตฌ์ฑ์ด ์์ด์ ์ด์ ๋ํด ์ถ๊ฐ์ ์ธ ๋ฆฌ์์น๋ฅผ ์งํํ๋ค. ์ด ๊ตฌ์ฑ์์ ์ค์ํ ๊ฒ์ ๊ฒฐ๊ตญ '์ด๋ค ํด๋ก ๋ถํํ ์คํธ๋ฅผ ์งํํ๋๋' ์ '์ด๋ค ํด๋ก ์๊ฐํ ํ๋๋' ์ด๊ธฐ ๋๋ฌธ์ ์ค๊ฐ ๋ค๋ฆฌ ์ญํ ์ ํ๋ InfluxDB๊ฐ Prometheus๋ก ๋ฐ๋๋ ๊ฑด ํฐ ๋ฌธ์ ๊ฐ ์์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ด๋ฆฐ ๊ฒฐ๋ก ์ "์๋ํ๊ฐ ๊ฐ๋ฅํ๋ค" ์๋ค.
Grafana์ Provisioning์ ํตํด ํจ๊ป ๋์ธ Prometheus ์ปจํ ์ด๋๋ฅผ datasource๋ก ์ฌ์ ์ ๋ฑ๋กํด์ฃผ๊ณ ์ด๋ฅผ ์๊ฐํํ dashboard๋ง ๊ตฌ์ฑํด์ฃผ๋ฉด ๋๊ธฐ ๋๋ฌธ์ ์ด๋ ต์ง ์๊ฒ ๊ฐ๋ฅํด ๋ณด์๋ค.
๋ค๋ง, ์ด์ ๋ํ ๋ ํผ๋ฐ์ค๊ฐ ๋ถ์กฑํ์ฌ ์ง์ ์ปดํฌ์ฆ ํ์ผ์ ์์ฑํ๋ค. ์๋ ๋งํฌ์์ ํ์ธ์ด ๊ฐ๋ฅํ๋ค.
k6 + Prometheus + Grafana ์๋ ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ (with Docker-compose)
k6๋ฅผ ํตํ๋ฉด ๋ถํํ ์คํธ๋ฅผ js ๊ธฐ๋ฐ ์คํฌ๋ฆฝํธ๋ก ์์ฝ๊ฒ ์์ฑ์ด ๊ฐ๋ฅํ๋ค. ๋ค๋ง k6๋ ๋จ์ ํ ์คํธ ๋ง์ ์ํํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ถ๊ฐ์ ์ธ ์๊ฐํ ๊ตฌ์ฑ์ ์งํํด์ผ ํ ํ์๊ฐ ์๋ค. ์ด๋ฅผ ์ํด ๊ตฌ๊ธ๋ง์ ํด
one-armed-boy.tistory.com
ํด๋น ๋ฐฉ๋ฒ์ ํตํด ๊ตฌ์ฑ๋๋ ๋์๋ณด๋๋ ์๋์ ๊ฐ๋ค.
์ด ๋ฐฉ์์ k6๋ฅผ ์ฌ์ฉํ์ ๋ ์ป์ ์ ์๋ ์ฑ๋ฅ์ ์ธ ์ด์ ๋ฟ๋ง ์๋๋ผ, ์ปดํฌ์ฆ ํ์ผ์ ํตํ ์๋ํ๋ ๊ฐ๋ฅํ๋ค.
๋ค๋ง ํ๊ฐ์ง ์์ฌ์ด ์ ์ InfluxDB๋ฅผ ํตํ Grafana ๋์๋ณด๋์ ๋นํด ์ด ์ชฝ์ด ์กฐ๊ธ ๋ ์ด๋ผ(?)ํ๋ค๋ ์ ์ด๋ค.
๊ฒฐ๋ก
์์์ ๊ณ ๋ คํ ๋ฐฉ์๋ค์ ํน์ง์ ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ๋ค.
nGrinder | k6 + InfluxDB + Grafana | k6 + Prometheus + Grafana | |
ํ ์คํธ ์๋๋ฆฌ์ค ์์ฑ ์ฉ์ด์ฑ | Java์ ์ ์ฌํ Groovy๋ฅผ ํตํด ์์ฝ๊ฒ ์์ฑ ๊ฐ๋ฅ | Js๋ฅผ ํตํด ์ฝ๊ฒ ์์ฑ ๊ฐ๋ฅ | Js๋ฅผ ํตํด ์ฝ๊ฒ ์์ฑ ๊ฐ๋ฅ |
์ฑ๋ฅ | k6์ ๋น๊ตํ์ฌ ๋ ๋ฎ์ ์ฑ๋ฅ | nGrinder์ ๋น๊ตํ์ฌ ๋ ๋์ ์ฑ๋ฅ | nGrinder์ ๋น๊ตํ์ฌ ๋ ๋์ ์ฑ๋ฅ |
Docker๋ฅผ ํตํ ์๋ ๊ตฌ์ฑ ๊ฐ๋ฅ์ฑ | ์ปดํฌ์ฆ ํ์ผ์ ํตํด ์๋ ํ๊ฒฝ ๊ตฌ์ฑ ๊ฐ๋ฅ | ๋ถ๊ฐ๋ฅ (InfluxDB - Grafana ์ฐ๋์ ์์ด ๊ฐ๋ฐ์๊ฐ ๊ฐ์ ํด์ผ ํ ํ์ ์กด์ฌ) | ์ปดํฌ์ฆ ํ์ผ์ ํตํด ์๋ ํ๊ฒฝ ๊ตฌ์ฑ ๊ฐ๋ฅ |
๋ ํผ๋ฐ์ค | ํ๊ธ ๋ ํผ๋ฐ์ค๊ฐ ๋ง์ | ๊ณต์๋ฌธ์, ํด์ธ ๋ ํผ๋ฐ์ค๊ฐ ๋ง์ | ๊ณต์๋ฌธ์, ํด์ธ ๋ ํผ๋ฐ์ค๊ฐ ๋ง์ |
Grafana ์ฐ๋์ฑ | ๋ถ๊ฐ๋ฅ | ๊ฐ๋ฅ | ๊ฐ๋ฅ |
๊ทธ๋ฆฌ๊ณ ์ด๋ฌํ ๋น๊ต๋ฅผ ํตํด ์ต์ข ์ ์ผ๋ก
k6 + Prometheus + Grafana๋ฅผ ์ ํํ์๋ค.
๊ฐ์ฅ ๋ง์์ ๋ค์๋ ์ง์ ์ ์ฑ๋ฅ์ด ์ค์ํ๋ฉด์๋,
๋ถํ ํ ์คํธ ๊ณผ์ ์ docker-compose up ๋ช ๋ น์ด ํ๋๋ก ์๋ํํ ์ ์๋ค๋ ์ .
'Backend' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
AWS SQS๋ฅผ ์ด์ฉํ์ฌ ํ ๋ํธ ๋ณ ๋น๋๊ธฐ ์์ ์ค์ธ์ฐ๊ธฐ (0) | 2025.02.02 |
---|---|
๋ถํํ ์คํธ๋ฅผ ์ํด k6 + Prometheus + Grafana ์๋ ํ๊ฒฝ ๊ตฌ์ฑํ๊ธฐ (with Docker-compose) (1) | 2024.04.02 |