1. k6 메트릭스 개요
- k6는 모든 테스트에서 내장 메트릭스와 커스텀 메트릭스를 생성합니다.
- 각 지원되는 프로토콜마다 고유한 메트릭스가 있으며, 이를 통해 다양한 측면의 성능을 측정할 수 있습니다.
2. 표준 내장 메트릭스
- k6는 사용하는 프로토콜과 관계없이 항상 다음 메트릭스들을 수집합니다.
2.1 체크 및 데이터 관련 메트릭스
checks
- 유형: Rate
- 설명: 성공한 체크의 비율
- 활용: 테스트 조건의 충족 여부 확인
data_received
- 유형: Counter
- 설명: 수신된 데이터의 총량
- 활용: 개별 URL별 데이터 추적 가능
data_sent
- 유형: Counter
- 설명: 전송된 데이터의 총량
- 활용: 개별 URL별 데이터 추적 가능
2.2 실행 관련 메트릭스
dropped_iterations
- 유형: Counter
- 설명: 시작되지 못한 반복 횟수
- 원인: VU 부족(arrival-rate executors) 또는 시간 부족(iteration-based executors의 maxDuration 만료)
iteration_duration
- 유형: Trend
- 설명: 설정과 정리 시간을 포함한 전체 반복 완료 시간
- 참고: 특정 시나리오의 반복 함수 지속 시간 계산 가능
iterations
- 유형: Counter
- 설명: VU가 JS 스크립트(기본 함수)를 실행한 총 횟수
2.3 VU 관련 메트릭스
vus
- 유형: Gauge
- 설명: 현재 활성화된 가상 사용자 수
vus_max
- 유형: Gauge
- 설명: 최대 가상 사용자 수
- 참고: 부하 확장 시 성능 영향을 피하기 위해 VU 리소스가 미리 할당됨
3. HTTP 관련 메 트릭스
HTTP 요청이 포함된 테스트에서만 생성되는 메트릭스들입니다.
정보
모든 http_req_* 메트릭스의 타임스탬프는 요청 종료 시점에 기록됩니다. 즉, k6가 응답 본문의 끝을 수신하거나 요청이 타임아웃될 때 타임스탬프가 생성됩니다.
3.1 요청/응답 관련 메트릭스
http_req_duration
- 유형: Trend
- 설명: 요청의 총 소요 시간
- 계산: http_req_sending + http_req_waiting + http_req_receiving의 합계
- 참고: DNS 조회와 연결 시간은 제외됨
http_req_sending
- 유형: Trend
- 설명: 원격 호스트로 데이터를 전송하는 데 걸린 시간
http_req_receiving
- 유형: Trend
- 설명: 원격 호스트로부터 응답 데이터를 수신하는 데 걸린 시간
http_req_waiting
- 유형: Trend
- 설명: 원격 호스트로부터 응답을 기다리는 시 간(TTFB, Time To First Byte)
3.2 연결 관련 메트릭스
http_req_blocked
- 유형: Trend
- 설명: 요청을 시작하기 전에 사용 가능한 TCP 연결 슬롯을 기다리는 시간
http_req_connecting
- 유형: Trend
- 설명: 원격 호스트와 TCP 연결을 수립하는 데 걸린 시간
http_req_tls_handshaking
- 유형: Trend
- 설명: 원격 호스트와 TLS 세션 핸드셰이크에 소요된 시간
3.3 기타 HTTP 메트릭스
http_req_failed
- 유형: Rate
- 설명: setResponseCallback에 따른 실패한 요청의 비율
http_reqs
- 유형: Counter
- 설명: k6가 생성한 총 HTTP 요청 수
4. 브라우저 메트릭스
k6 브라우저 모듈은 Core Web Vitals를 기반으로 메트릭스를 생성합니다.