요약OTel JMX Metric Gatherer를 사용해 ClickStack에서 Apache Kafka 성능 메트릭을 모니터링합니다. 데모 데이터셋과 사전 구축된 대시보드가 포함되어 있습니다.
기존 Kafka 배포와 통합
사전 요구 사항
- 실행 중인 ClickStack 인스턴스
- JMX가 활성화된 기존 Kafka 설치(버전 2.0 이상)
- ClickStack과 Kafka 간 네트워크 연결(JMX 포트 9999, Kafka 포트 9092)
- OpenTelemetry JMX Metric Gatherer JAR(다운로드 방법은 아래 참조)
1
ClickStack API Key 가져오기
JMX Metric Gatherer는 데이터를 ClickStack의 OTLP 엔드포인트로 전송하며, 이 엔드포인트에는 인증이 필요합니다.- ClickStack URL에서 HyperDX를 여세요(예: http://localhost:8080)
- 필요한 경우 계정을 만들거나 로그인하세요
- Team Settings → API Keys로 이동하세요
- 수집 API Key를 복사하세요
- 환경 변수로 설정하세요:
2
3
Kafka JMX 활성화 여부 확인
Kafka 브로커에서 JMX가 활성화되어 있는지 확인하십시오. Docker 배포의 경우:4
Docker Compose로 JMX Metric Gatherer 배포
이 예시는 Kafka, JMX Metric Gatherer, ClickStack를 포함한 전체 구성을 보여줍니다. 기존 배포 환경에 맞게 서비스 이름과 endpoint를 조정하십시오:service:jmx:rmi:///jndi/rmi://kafka:9999/jmxrmi- JMX 연결 URL(사용 중인 Kafka 호스트명을 사용하세요)otel.jmx.target.system=kafka- Kafka 전용 메트릭을 활성화합니다http://clickstack:4318- OTLP HTTP 엔드포인트(사용 중인 ClickStack 호스트명을 사용하세요)authorization=\${CLICKSTACK_API_KEY}- 인증에 사용할 API Key(필수)service.name=kafka,kafka.broker.id=broker-0- 필터링에 사용할 리소스 속성10000- 밀리초 단위 수집 인터벌(10초)
5
HyperDX에서 메트릭 확인
HyperDX에 로그인하고 메트릭이 수집되고 있는지 확인합니다:- Chart Explorer로 이동합니다
kafka.message.count또는kafka.partition.count를 검색합니다- 메트릭이 10초 간격으로 표시되어야 합니다
kafka.message.count- 처리된 총 메시지 수kafka.partition.count- 총 파티션 수kafka.partition.under_replicated- 클러스터가 정상 상태라면 0이어야 합니다kafka.network.io- 네트워크 처리량kafka.request.time.*- 요청 지연 시간 백분위수
Kafka 컨테이너 내부에서 Kafka 클라이언트 명령(
kafka-topics, kafka-console-producer 등)을 실행할 때는 JMX 포트 충돌을 방지하기 위해 명령 앞에 unset JMX_PORT &&를 추가하십시오.데모 데이터셋
1
샘플 메트릭 데이터셋 다운로드
사전 생성된 메트릭 파일을 다운로드하세요(실제와 유사한 패턴이 반영된 29시간 분량의 Kafka 메트릭).- 06:00-08:00: 아침 시간대 급증 - 야간 기준치에서 트래픽이 급격히 증가
- 10:00-10:15: 플래시 세일 - 평소 트래픽의 3.5배까지 급증
- 11:30: 배포 이벤트 - 복제가 부족한 파티션과 함께 consumer lag가 12배 급증
- 14:00-15:30: 쇼핑 피크 시간대 - 기준치의 2.8배 수준의 높은 트래픽이 지속
- 17:00-17:30: 퇴근 후 급증 - 두 번째 트래픽 피크
- 18:45: consumer 리밸런싱 - 리밸런싱 중 lag가 6배 급증
- 20:00-22:00: 저녁 시간대 감소 - 야간 수준으로 급격히 감소
2
3
4
HyperDX에서 메트릭 확인
로드가 완료되면 메트릭을 가장 빠르게 확인하는 방법은 사전 구축된 대시보드를 사용하는 것입니다.Dashboards and visualization 섹션으로 이동하여 대시보드를 가져오고 모든 Kafka 메트릭을 한 번에 확인하세요.시간대 표시HyperDX는 브라우저의 로컬 시간대로 timestamp를 표시합니다. 데모 데이터는 2025-11-05 16:00:00 - 2025-11-06 16:00:00 (UTC) 기간에 걸쳐 있습니다. 위치와 관계없이 데모 메트릭이 표시되도록 시간 범위를 2025-11-04 16:00:00 - 2025-11-07 16:00:00로 설정하세요. 메트릭이 표시되면 더 명확하게 시각화할 수 있도록 범위를 24시간으로 좁힐 수 있습니다.
대시보드 및 시각화
1
대시보드 구성 파일
2
사전 구축된 대시보드 가져오기
- HyperDX를 열고 Dashboards 섹션으로 이동합니다
- 오른쪽 상단의 점 3개 메뉴에서 Import Dashboard를 클릭합니다
kafka-metrics-dashboard.json파일을 업로드한 다음 Finish Import를 클릭합니다
3
대시보드 보기
모든 시각화가 미리 구성된 상태로 대시보드가 생성됩니다.데모 데이터셋의 경우 시간 범위를 **2025-11-05 16:00:00 - 2025-11-06 16:00:00 (UTC)**로 설정하십시오(로컬 시간대에 맞게 조정). 가져온 대시보드에는 기본적으로 시간 범위가 지정되어 있지 않습니다.
문제 해결
HyperDX에 메트릭이 표시되지 않는 경우
인증 오류
Authorization failed 또는 401 Unauthorized가 표시되면:
- HyperDX UI에서 API Key를 확인하세요 (설정 → API Keys → 수집 API key)
- 다시 export하고 재시작하세요:
Kafka 클라이언트 명령 실행 시 포트 충돌
unset JMX_PORT &&를 붙이십시오:
네트워크 연결 문제
Connection refused가 표시되면 다음 사항을 확인하십시오.
모든 컨테이너가 동일한 Docker 네트워크에 연결되어 있는지 확인하십시오.
다음 단계
- 중요한 메트릭(과소 복제된 파티션, consumer lag 증가, 요청 지연 시간 급증)에 대한 알림을 설정하세요
- 특정 사용 사례에 맞는 추가 대시보드(토픽별 처리량, consumer group 모니터링)를 만드세요
- 고유한
kafka.broker.idresource 속성을 사용해 추가 JMX Metric Gatherer 인스턴스를 배포하여 여러 Kafka broker를 모니터링하세요