데이터 엔지니어( 실습 정리 )/kafka
(4) - kafka consumer Lag, Burrow
세용용용용
2024. 7. 16. 22:41
1. kafka consumer Lag : producer offset 과 consumer offset의 차이
- 즉, 컨슈머가 주어진 파티션에서 처리해야할 데이터가 얼마나 남았는지 나타내는 지표, 이를 통해 컨슈머 성능 모니터링 지표로 사용가능!!
- 프로듀서와 컨슈머 오프셋은 파티션을 기준으로 한 값으로 여기서 파티션이 여러개 있으면 lag도 여러개 존재!!!
- 이처럼 컨슈머 그룹에서 lag가 여러개 존재시 가장 높은 숫자를 갖는 lag를 records-lag-max
2. kafka lag 모니터링
- 카프카 운영에 중요한 모니터링 지표
- 토픽을 통해 연결되있는 프로듀서와 컨슈머 상태를 유추할수 있다
lag이 증가하는 이유
- 컨슈머 처리 속도 저하
- 데이터 폭주 ( 프로듀서가 갑자기 많은 양의 데이터 보내는 경우 )
- 네트워크 지연
- 브로커 성능 문제
- 파티션 리벨런싱 : 리벨런싱 할떄 컨슈머가 데이터를 소비하지 못하는 경우가 있음
이외에 다양한 이유로 lag가 증가 할수있다!!!
하지만 컨슈머 단위에서 lag을 모니터링 하는 것은 매우 위험...
- lag 정보 수집을 컨슈머에 의존하게 되고
- 컨슈머 마다 lag 수집 로직을 넣어야됨
- 어떠한 이유로 lag 수집하기 힘든 컨슈머는 운영이 까다로움..
즉, 카프카 lag를 모니터링 위해 외부 애플리케이션 이용해야함!!!
3. Burrow : Kafka 컨슈머 클러스터의 상태와 Lag을 모니터링하기 위한 도구
- Burrow는 Kafka 클러스터와 관련된 다양한 메트릭을 수집하여 컨슈머 그룹의 상태를 평가하고, 이를 통해 컨슈머 Lag과 성능 문제를 감지할 수 있다!!!!
burrow 주요 기능
- 컨슈머 그룹 모니터링 : 각 컨슈머 그룹에 대한 lag를 모니터링, 각 컨슈머 그룹 파티션 별로 (현재,끝) 오프셋, lag를 수집해 상태 평가
- 알림 기능 : 특정 임계값 초과하는 lag나 컨슈머 그룹 비정상 상태 감지시 알림 설정
- 상태 평가 : 슬라이딩 윈도우를 통해 컨슈머 상태 확인 및 평가
- OK - 정상~ good!!!
- WARNING - 데이터 양이 급격히 많이지면
- Error - 데이터양이 많이지는데 컨슈머가 데이터 소비를 안하면.. 뭐지 주것나...
- 확장성 : 멀티 카프카 클러스터 지원
- http api 제공