saay, hi
JMX 모니터링 지표 본문
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 |