saay, hi

JMX 모니터링 지표 본문

kafka 기술문서

JMX 모니터링 지표

saay-hi 2024. 6. 28. 16:38
JMX 메트릭 항목 MBean 사용 유형 설명
TopicCount kafka.controller:type
=kafkaController,name
=GlobalTopicCount
카프카 클러스터 전체의 토픽 개수를 나타냄
PartitionCount kafka.controller:type
=kafkaController,name
=GlobalPartitionCount
카프카 클러스터 전체의 파티션 개수를 나타냄
ActiveControllerCount kafka.controller:type
=kafkaController,name
=ActiveControllerCount
카프카 클러스터 내 컨트롤러 수를 나타냄. 클러스터 내에는 반드시 1개의 컨트롤러가 존재해야함. 알람을 설정해두면, 1이 아닌 경우 알람이 발생함
UnderReplicatedPartitions kafka.server:type=ReplicaManager,nameUnderReplicatedPartitions 카프카 클러스터 내에서 복제가 되지 않은 파티션 수를 나타냄. 알람을 설정해두면, 0이 아닌 경우 알람이 발생됨. 오프라인 파티션 수를 나타내는 지표도 있지만,해당 지표와 거의 동일하게 알람이 감지되어 이 지표만 모니터링해도 운영하는 데 큰 무리는 없음.
오프라인 파티션 모니터링이 필요하다면, kafka.controller:type=KafkaController,name=OfflinePartitionsCount를 참고하길 바람
UnderMinIsrPartitionCount kafka.server:type=ReplicatedManager, name=UnderMinIsrPartitionCount 안정적인 메시지 전송을 위해 유지해야 하는 최소 ISR 수를 지정하는 경우가 있음. 유지해야 하는 최소 ISR수보다 작은 수를 나타냄. 알람을 설정해두면 0이 아닌 경우 알람이 발생됨
MessageInPerSec kafka.server:type=BrokerTopicMetics,name=MessageInPerSec 브로커로 전송되는 초당 메시지 수를 나타냄
BytesInpPerSec kafka.server:type=BrokerTopicMetics,name=BytesInPerSec 브로커로 전송되는 초당 바이트 수를 나타냄
BytesOutPerSec kafka.server:type=BrokerTopicMetics,name=BytesOutPerSec 브로커에서 나가는 초당 바이트 수를 나타냄. 일반적으로 브로커로 들어오는 바이트 수보다 나가는 바이트 수가 더 많음. 프로듀서는 하나의 토픽으로 메시지를 전송하지만, 카프카의 특성상 해당 토픽을 컨슘하는 컨슈머들은 다수가 존재할 수 있으므로 나가는 바이트 수가 더 많기 때문
RequestPerSec kafka.network:type=ReplicatedMetrics,name=RequestsPerSec,request={Produce|FetchConsumer|FetchFollower} 프로듀서, 컨슈머, 팔로워들의 요청 비율을 나타냄
LeaderCount kafka.network:type=ReplicaManager,name=LeaderCount 브로커가 갖고 있는 리더의 수를 나타냄. 카프카는 리더가 읽고 쓰기를 처리하므로, 클러스터 전체에 고르게 분산시켜서 브로커들이 균등하게 처리하게 해야 함
PartitionCount kafka.network:type=ReplicaManager,name=PartitionCount 브로커가 갖고 있는 파티션 수를 나타냄. 파티션 수 역시 클러스터 전체에 고르게 분산시켜서 브로커들이 균등하게 처리하게 해야 함
IsrShrinkPerSec kafka.network:type=ReplicaManager,name=IsrShrinkPerSec 브로커가 다운된다거나 리플리케이션 동작에 문제가 발생하면, ISR이 축소되는 현상이 발생함. 따라서 파티션의 리플리케이션 동작에 문제가 있는지 유무 등을 확인할 떄 사용하는 지표임. 알람을 성정해두면, 0보다 큰 경우 알람이 발생됨. 브로커가 장애에서 복구되거나 리플리케이션 동작이 정상화될 때 ISR이 화장되는데, 이 지표는 kafka.network:type=ReplicaManager,name=IsrExpandPerSec값을 통해 확인할 수 있음
RequestQueueSize kafka.network:type=RequestChannel,name=RequestQueueSize 요청 큐의 크기를 나타냄. 큐의 크기가 크다는 것은 처리되지 못하는 요청들이 많다는 의미
ResponseQueueSize kafka.network:type=RequestChannel,name= ResponseQueueSize 요청 큐의 크기를 나타냄. 큐의 크기가 크다는 것은 처리되지 못하는 응답들이 많다는 의미
RequestHandlerAvgIdlePercent kafka.network:type=KafkaRequestHandlerPool,name= RequestHandlerAvgIdlePercent 요청 핸들러 스레드가 유휴 상태인 평균 시간을 나타냄. 이 값이 0이면 모든 리소스가 사용된 것이고, 1이면 모든 리소스를 가용할 수 있는 상태를 나타냄
NetworkProcessorAvgIdlePercent kafka.network:type=SocketServer,name=NetworkProcessorAvgIdlePercent 네트워크 프로세서 스레드가 유휴 상태인 평균 시간을 나타냄. 이 값이 0이면 모든 리소스가 사용된 것이고, 1이면 모든 리소스를 가용할 수 있는 상태를 나타냄
RequestQueueTimeMs kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request={produce|FetchConsumer|FetchFollower} 요청 큐에서의 대기시간을 나타냄
LocalTimeMs kafka.network:type=RequestMetrics,name=LocalTimeMs,request={produce|FetchConsumer|FetchFollower} 리더에서 요청을 처리하는 시간을 나타냄
RemoteTimeMs kafka.network:type=RequestMetrics,name=RemoteTimeMs,request={produce|FetchConsumer|FetchFollower} 팔로워들이 기다리는 시간을 나타내며, 프로듀스 옵션에서 acks=all 등을 사용하면 시간이 길어질 수 있음
ResponseQueueTimeMs kafka.network:type=RequestMetrics,name=ResponseQueueTimeMs,request={produce|FetchConsumer|FetchFollower} 응답 큐에서의 대기시간을 나타냄
ResponseSendTimeMs kafka.network:type=RequestMetrics,name=ResponseSendTimeMs,request={produce|FetchConsumer|FetchFollower} 응답을 보내는 시간을 나타냄

 

 

'kafka 기술문서' 카테고리의 다른 글

kafka 3.8.0 connect  (3) 2024.10.24
카프카 애플리케이션의 로그 파일 종류와 역할  (0) 2024.06.27
컨슈머 파티션 할당 전략  (0) 2024.06.26
그룹 코디네이터  (0) 2024.06.25
컨슈머 오프셋 관리  (0) 2024.06.25