카테고리 없음

[Spring Boot] 캐싱 모니터링 k6 + InfluxDB + Grafana

ckm7907 2024. 5. 28. 16:46

캐싱을 한 부분의 속도를 대시보드로 확인해보기

k6로 테스트 한 데이터 (시계열 매트릭 데이터) 를 influxDB라는 시계열 데이터베이스에 저장한다.

그 후 그 데이터를 Grafana 라는 시각화 웹 애플리케이션을 사용해서 그래프로 속도의 변화를 보여준다.,

이에 대한 이점은 다음과 같다.

 

1. 시계열 데이터를 관리할 수 있다.

2. 시각화를 통해 데이터를 효과적으로 한눈에 보여줄 수 있다.

3. 실시간으로 데이터를 확인할 수 있다.

 

윈도우 환경에서 세팅

choco 설치

k6를 다운로드 하는데 먼저 chocolatey라는 패키지 매니저를 다운로드한다.

윈도우에서 사용할 수 있는 커맨드 라인 패키지 매니저이다.

k6 커맨드를 사용해야 하기 때문에 choco를 사용한다.

공식 문서 : https://chocolatey.org/install

 

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

 

k6 설치

choco를 사용하여 k6를 다운로드한다.

choco install k6

 

InfluxDB, Grafana

docker를 사용하여 띄우기 때문에 docker desktop을 설치해야 하는 것을 잊지말자! (그리고 실행도)

이번에는 docker-compose를 사용해서 세팅을한다.

influxdb는 8086 포트에, grafana는 3000 포트에 올린다.

version: "3.7"

services:
  influxdb:
    image: bitnami/influxdb:1.8.5
    container_name: influxdb
    ports:
      - "8086:8086"
      - "8085:8088"
    environment:
      - INFLUXDB_ADMIN_USER_PASSWORD=ssafy
      - INFLUXDB_ADMIN_USER_TOKEN=ssafy
      - INFLUXDB_HTTP_AUTH_ENABLED=false
      - INFLUXDB_DB=myk6db
  granafa:
    image: bitnami/grafana:latest
    ports:
      - "3000:3000"
  redis:
    image: redis:latest
    container_name: redis
    ports:
      - 6379:6379
    volumes:
      - ./redis/data:/data

 

grafana 설정 방법

grafana 주소 : localhost:3000

여기서 초기 아이디와 비밀번호는 각각

username : admin

Password : admin

이다.

 

여기서 Home -> Connections -> Add new connections 로 들어가서 influxDB를 찾아 클릭한다.

 

 

여기서 URL을 http://influxdb:8086, Database를 myk6db로 설정하고 Save & test를 클릭해서 위와 같이 뜨면 성공!

 

그 후 dashBoard를 설정한다.

 

 

grafana에서 제공해주는 dashboard를 하나 import 해준다.
https://grafana.com/grafana/dashboards/2587-k6-load-testing-results/

 

여기서 하단 오른쪽에 import a dashboard를 클릭한 후, 다운로드한 json 파일을 업로드한다.

그리고 맨 아래 k6에 데이터베이스 세팅했던 influxdb를 선택하고 import를 클릭!

 

그럼 이렇게 생긴 DashBoard가 생길 것이다.

 

k6 테스트 명령어

그 후, intellij terminal에서 캐싱을 할때 세팅했던 script.js 에 대한 결과(로그)를 influxdb로 보내면, grafana에서 실시간으로 데이터 흐름을 볼 수 있다.

k6 run --out influxdb=http://localhost:8086/myk6db script.js

 

이전글

https://ckm7907.tistory.com/6

 

출처

https://velog.io/@heka1024/Grafana-k6%EC%9C%BC%EB%A1%9C-%EB%B6%80%ED%95%98-%ED%85%8C%EC%8A%A4%ED%8A%B8%ED%95%98%EA%B8%B0