멀티 모듈 프로젝트를 구성하여
쿠폰 발급 시스템 개발을 진행했었습니다.
이제 종합적으로 Locust를 사용하여 부하 테스트를 진행하고
각 모듈에 가해지는 부하를 Prometheus에서 지표들을 수집하고, Grafana의 대시보드에서 확인하는 과정을 기록하려고 합니다.
우선 Prometheus와 Grafana 컨테이너를 띄워주고
Prometheus에 접속해줍니다.
현재 지표를 수집할 애플리케이션들이 켜져있지 않으므로
동작시켜 줍니다.
Grafana에 접속했는데 현재 저의 경우 아래 사진과 같이 주황색 경고등이 떠있는 것을 확인할 수 있었습니다.
경고등에 마우스를 가져가면 This panel requires Angular (deprecated)라는 문구가 뜨는데
이는 대시보드가 AngularJS가 필요한 패널 시각화 또는 데이터 소스에 의존하는 경우 경고 메시지가 표시되는 것이라고 합니다.
Grafana에서는 AngularJS의 보안 위험 문제와 여러 이유로 v5에서 React로 마이그레이션을 시작했다고 합니다.
Angular support deprecation | Grafana documentation
Enterprise Open source Angular support deprecation Angular plugin support is deprecated and will be removed in a future release. There are legacy core Grafana visualizations and external plugins that rely on Grafana’s Angular plugin support to work. The
grafana.com
하지만 지금 상황에서는 큰 문제가 되진 않으므로 넘어가도록 하겠습니다.
Locust
부하테스트를 진행하기 위해서 위 사진과 같이 Locust 설정을 하고 테스트를 진행하였습니다.
쿠폰 발급 요청 api가 8080 포트에 있기 때문에 http://host.docker.internal:8080으로 설정하였습니다.
위와 같이 정상적으로 발급 요청을 하고, 발급이 진행되는 것을 확인할 수 있었습니다.
Grafana
docker-compose를 다시 띄우느라 아래 사진에서 테스트 전, 후의 시간차이가 있는 점 이해부탁드립니다!
또한 중간에 있는 connection 대시보드는
tomcat_connections_current_connections 메트릭을 수집한 내용들을 시각화 하는 대시보드입니다.
coupon-api 쪽에 부하가 발생하므로 connection 부분을 보면
테스트 전과 다르게 급격히 높아진 것을 확인할 수 있습니다.
coupon-api
부하테스트 전
부하테스트 후
coupon-consumer
부하테스트 전
부하테스트 후
'SpringBoot' 카테고리의 다른 글
MSA) Spring Cloud 기반의 MSA 구조에서 Swagger 통합하기 + FastAPI의 Swagger까지 (0) | 2024.06.17 |
---|---|
MSA) Spring Cloud Eureka에 FastAPI 서버를 Client로 등록하기 (0) | 2024.06.01 |
프로메테우스와 그라파나를 사용하여 모니터링 수행하기 (0) | 2024.03.28 |
기존에 동시성 이슈 문제 해결을 위해 사용한 Redisson 대신 Redis의 script를 사용해서 성능 올리기 (0) | 2024.03.24 |
Mockito 에러 - UnnecessaryStubbingException 해결 (0) | 2024.03.21 |