Grafana k6는 개발자 친화적이고 확장 가능한 오픈 소스 부하 테스트 도구입니다. 이 도구는 성능 문제를 사전에 예방하고 신뢰성을 향상시키기 위해 필요한 다양한 기능들을 제공합니다.
Grafana k6는 성능 테스트와 로드 테스트를 위한 오픈 소스 도구로, 애플리케이션과 시스템의 성능을 평가하고 개선할 수 있도록 설계되었습니다. 이 도구는 특히 개발자 친화적이며, 다양한 기능을 통해 성능 최적화를 지원합니다. 아래에서는 Grafana k6의 주요 특징을 살펴보겠습니다.
이처럼 Grafana k6는 성능 테스트를 보다 효율적이고 유연하게 수행할 수 있는 도구입니다.
Kubernetes 환경에서 k6-operator를 통해 동작하며, 이는 성능 테스트 인프라에서도 적극 활용되고 있습니다. k6-operator를 통해 테스트 인프라를 쉽게 구성하고 유지할 수 있습니다.
k6-operator architecture
k6-operator pattern으로 kubernetes에서 동작하는 과정
성능 테스트는 EKS(Elastic Kubernetes Service) 및 Karpenter를 사용하여 구성되며, Terraformer를 통해 운영 환경과 동일한 세팅을 수집하여 Alpha 정보로 변환하여 비용 효율적으로 운영됩니다. LGTM 스택을 적용함으로써, 프로메테우스 부하 없이 Grafana k6 결과 메트릭을 수집할 수 있는 구조입니다.
Performance Testing Infrastructure
Grafana k6는 "Scenario"라는 개념을 통해 다양한 테스트 환경을 지원합니다. 이를 통해 워크로드 모델과 시나리오를 조합하여 유연하게 성능 테스트를 구성할 수 있습니다.
NAME | DESCRIPTION |
---|---|
Shared iterations | 고정된 반복 횟수는 여러 VU간에 공유된다. |
Per VU iterations | 각 UV는 정확한 수의 반복을 실행한다. |
Constant VUs | 고정된 수의 VU는 지정된 시간 동안 가능한 한 반복한다. |
Ramping VUs | 가변 수의 VU는 다음과 같이 실행된다. 지정된 시간동안 가능한 한 반복한다. |
Constant arrival rate | 지정된 기간동안 고정된 수의 반복이 실행된다. |
Ramping arrival rate | 가변 반복 횟수는 다음과 같다. 지정된 시간에 실행된다. |
Externally controlled | 런타임 시 실행 제어 및 확장 k6의 REST API또는 CLI를 통해 수행 |
응답 시간, 오류율, 처리량 등 다양한 성능 메트릭을 지원하며, 이러한 데이터는 팀이 시스템의 성능 추세를 이해하는 데 도움을 줍니다.
Grafana k6 Default Built-in Metrics
METRIC | NAME | TYPE |
---|---|---|
vus | 현재 활동 중인 가상 유저 | Gauge |
vus_max | 가상 유저의 최대 수 | Gauge |
iterations | 스크립트 반복 횟수 | Counter |
iteration_duration | 반복 완료에 소요된 시간 | Trend |
dropped_iterations | 시작되지 않은 반복 횟수 | Counter |
data_received | 수신한 데이터 양 | Counter |
data_sent | 전송한 데이터 양 | Counter |
checks | 성공 체크 비율 | Rate |
HTTP-Specific Built-in Metrics
METRIC | NAME | TYPE |
---|---|---|
http_reqs | 생성된 HTTP 요청 수 | Counter |
http_req_blocked | TCP 연결 대기 시간 | Trend |
http_req_connecting | TCP 연결 소요 시간 | Trend |
http_req_tls_handshaking | TLS 핸드셰이킹 소요 시간 | Trend |
http_req_sending | 데이터 전송 소요 시간 | Trend |
http_req_waiting | 응답 대기 시간 | Trend |
http_req_receiving | 데이터 수신 소요 시간 | Trend |
http_req_duration | 총 요청 처리 시간 | Trend |
http_req_failed | 요청 실패 비율 | Rate |
Grafana k6가 제공하는 다양한 메트릭을 Grafana 대시보드에서 시각화함으로써, 성능 트렌드를 분석하고 모니터링할 수 있습니다.
Grafana 대시보드에서 Output에 따른 기본 템플릿을 참고할 수 있으며, 추가적으로 파드 상태 및 리소스 사용량 등을 커스터마이징하여 활용할 수 있습니다.
이 도구를 통해 팀은 부하 테스트를 효과적으로 수행하고 시스템의 신뢰성을 높일 수 있습니다.