Jmeter로 안정성 시험을 계획 중인데, 장기간 Jmeter를 실행하려면 GUI 모드가 아닌 Command를 통해 실행을 하는 형태로 사용을 하게 된다. GUI 모드로 장기간 실행을 하게 되면 Jmeter GUI가 사용하는 자체 메모리 누적 사용량이 높아지면서 client tool의 성능이 시험에 영향을 주는 경우가 발생할 수 있기 때문이다.
하지만 이렇게 Command로 실행을 하게 되면 시험을 완료하기 전 중간중간 시험 진행 상황을 바로바로 GUI 모드처럼 모니터링을 하기 수월하지 않다는 단점이 있다.
이를 보완할 수 있는 방법을 찾아보니 Grafana에서 실시간 모니터링이 가능한 방법들이 소개되어 있어서 따라해 보았다.
Jmeter - InfluxDB - Grafana 구성으로 진행하면 되고, 아래는 참고 링크들을 참고하여 구성해본 내용이다.
** 현재 아래와 같이 진행하였으나 Grafana 에서 실제 데이터 출력이 되지 않는 이슈가 있는 상황이다. 어느 부분이 문제인지는 아직 확인하지 못한 상태라 추가로 알아볼 예정이다. ㅠㅠ
1. InfluxDB & Grafana 설치
필자는 docker container로 각각 설치를 하기 위해 아래와 같이 docker-compose.yml을 작성하여 실행하였음
version: '3'
services:
grafana:
image: grafana/grafana
ports:
- '3000:3000'
depends_on:
- influxdb
volumes:
- grafana:/var/lib/grafana
influxdb:
image: influxdb:2.6.1
ports:
- '8086:8086'
environment:
- INFLUXDB_DB=test
- INFLUXDB_ADMIN_USER=admin
- INFLUXDB_ADMIN_PASSWORD=password
volumes:
- influxdb:/var/lib/influxdb
volumes:
grafana:
influxdb:
admin 으로 접속 ( http://{설치환경IP}:8086/ )
Bucket 생성
(1) LOAD YOUR DATA 선택
(2) BUCKET 선택 -> CREATE BUCKET 선택
(3) bucket 이름을 "jmeter"로 생성
(4) Jmeter/Grafana에서 InfluxDB 연동 시 입력할 API Key 생성
(5) API Key 는 다시 볼 수 없으니 잘 copy 해둘 것!
2. Jmeter에 플러그인 설치 및 Backend Listener 설정
(1) jmeter-influxdb2-listener-plugin 다운로드
https://github.com/mderevyankoaqa/jmeter-influxdb2-listener-plugin/releases
(2) 다운로드한 jar 파일을 jmeter폴더/lib/ext/ 하위에 저장
(3) 모니터링 하려는 jmx 파일의 Test Plan에 Backend Listener 추가
- org.apache.jmeter.visualizers.backend.InfluxDBRawBackendListenerClient 선택
- InfluxDB IP 변경
- 접속 API Key token 입력
3. Grafana에서 Jmeter Dashboard 구성 (+ InfluxDB 연동)
(1) Configuration -> Data Source -> Add new data source 를 통해 InfluxDB 저장소 등록
- Query Language : Flux로 선택
- URL : http://{InfluxDB 접속 IP}:8086
- Organization : 설치 환경에 맞게 입력
- Token : InfluxDB에서 copy해두었던 API Key token 입력
(2) Dashboard 구성
- Dashboard -> Import 선택
- Import via grafana.com 에 13644 입력하고 Load 선택
- DB에 InfluxDB 저장소 등록한 것을 선택하고 Import 선택
- 기본 구성이 완료되었고, 필요에 따라 보고싶은 지표로 Graph를 변환하여 사용
* 참고 링크 1 : https://doqtqu.tistory.com/274
* 참고 링크 2 : https://qainsights.com/jmeter-integration-with-influxdb-2-0/
'Engineering > Tools' 카테고리의 다른 글
[spreadsheet] UNIQUE Function (+ 공백 제거 FILTER Function) (0) | 2023.04.17 |
---|---|
[prometheus] system 모니터링을 위해 Node-Exporter 설치하기 (2) | 2023.03.27 |
[spreadsheet] 그룹화(group rows) 전체 접기/펴기 (2) | 2023.03.06 |
[confluence][macro] 확대(expand) (0) | 2023.01.29 |
(Jira) Jira filter : not in, is empty (0) | 2022.12.30 |
댓글