<aside>
💡
요약
LinkedIn OpenSource Burrow
[PARAGON] Kafka
</aside>
Kafka Architecture

kafka_architecture.drawio
Burrow ( Consumer Lag Monitoring )
<aside>
💡
Burrow는 LinkedIn에서 개발한 Kafka 컨슈머 지연(Lag) 모니터링 도구
Kafka 클러스터에서 컨슈머 그룹의 상태를 실시간으로 추적 및 지연 상태를 평가
문제가 발생할 경우 경고(WARN) 또는 오류(ERROR) 상태를 알립니다.
</aside>
Burrow의 주요 기능
- 컨슈머 지연(Lag) 모니터링:
- Kafka의
__consumer_offsets
토픽 데이터를 기반으로 컨슈머가 얼마나 지연되고 있는지 추적.
- 각 파티션별로 Lag을 계산하고 이를 종합적으로 평가.
- 컨슈머 상태 평가:
- 컨슈머 그룹의 상태를 [ OK, WARN, ERROR ] 분류.
- 상태 기준:
- OK: 지연이 없거나 허용 가능한 수준.
- WARN: 지연이 증가 중이거나 임계값을 초과.
- ERROR: 지연이 심각하거나 컨슈머가 멈춘 상태.
- 다중 클러스터 지원:
- 하나의 Burrow 인스턴스에서 여러 Kafka 클러스터를 동시에 모니터링 가능.
- HTTP API 제공:
- 컨슈머 그룹 상태 및 지연 정보를 확인할 수 있는 API 제공.
- 주요 테스트 명령:
- Kafka 클러스터 목록:
curl <http://localhost:8000/v3/kafka
>
- 컨슈머 그룹 목록:
curl <http://localhost:8000/v3/kafka/><클러스터_이름>/consumer
- 특정 컨슈머 그룹 상태:
curl <http://localhost:8000/v3/kafka/><클러스터_이름>/consumer/<컨슈머_그룹>/status
- 알림 기능:
- 상태가
WARN
또는 ERROR
로 변경되면 Slack, 이메일, PagerDuty 등을 통해 알림을 전송.
- 단, 지원되는 버전에 한해서만 사용 가능
Burrow의 동작 원리
- 데이터 수집:
- Kafka 클러스터의 메타데이터 및
__consumer_offsets
토픽 데이터를 읽어 컨슈머 그룹의 오프셋 및 Log End Offset(LEO)을 수집.
- Lag 계산:
- Lag = Log End Offset (LEO) - Consumer Offset
- Log End Offset: Kafka에서 가장 최신 메시지의 위치.
- Consumer Offset: 컨슈머가 마지막으로 읽은 메시지의 위치.
- 상태 평가: 평가 기준
- Lag 데이터를 기반으로 컨슈머 그룹의 상태를 판단.
- 설정된 임계값(
threshold
)에 따라 상태를 OK, WARN, ERROR로 분류.
Burrow를 사용해야 하는 이유