Kafka 모니터링이 OpenTelemetry 로 구성되면 지표가 뉴렐릭의 여러 위치에 표시됩니다. 이 가이드는 데이터를 찾는 방법과 효과적으로 쿼리하는 방법을 안내합니다.
Kafka 데이터로 이동하세요 Kafka 지표는 뉴렐릭 플랫폼의 여러 위치에 표시되며 각각은 다양한 사용 사례에 최적화되어 있습니다.
1. 엔티티 탐색기 최적의 용도: 빠른 상태 점검 및 엔티티 관계 분석
이동 one.newrelic.com > All capabilities > On host integrations Kafka 브로커, 클러스터 및 토픽 엔티티 유형을 확인하세요. 2. 큐 및 스트림 최적의 용도: 클러스터 집중 모니터링
이동 one.newrelic.com > All capabilities > Queues & Streams provider=opentelemetry 으로 필터링하고 Kafka를 활성화한 계정 행을 클릭하여 데이터를 확인하세요./* ### 3. 타사 서비스 최적 사용 대상: 통합 중심 모니터링 1. <DNT>**[one.newrelic.com](https\://one.newrelic.com)으로 이동 > All capabilities > Infrastructure > Third-party services**</DNT> 2. Select <DNT>**Kafka (OpenTelemetry)**</DNT> > <DNT>**OTel Kafka Dashboard**</DNT> <img title="OTel Kafka 타사 서비스" alt="Kafka(OpenTelemetry) 통합을 보여주는 타사 서비스 보기" src="/images/infrastructure_screenshot-crop_otel-kafka-third-party-통합.webp" /> */
3. 사전 구축된 대시보드 최적 사용 용도: 종합적인 모니터링 및 시각화
이동 one.newrelic.com > Dashboards > Recommended dashboards (View all) 검색 "OTel Kafka Dashboard" NRQL을 사용하여 Kafka 데이터를 쿼리합니다. NRQL을 사용하여 Kafka 데이터에 대한 사용자 지정 쿼리 및 대시보드를 생성하세요.
기본 쿼리 모든 Kafka 메트릭을 보려면 여기를 클릭하십시오.
WHERE instrumentation . provider = 'opentelemetry'
AND kafka . cluster . name IS NOT NULL
특정 클러스터를 모니터링하세요:
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
소비자 지연 모니터링 그룹별 소비자 지연 현상:
FROM Metric SELECT latest ( kafka . consumer_group . lag )
WHERE instrumentation . provider = 'opentelemetry'
FACET kafka . consumer_group . name , kafka . topic . name
SINCE 1 hour ago TIMESERIES
높은 소비자 지연 공지:
FROM Metric SELECT max ( kafka . consumer_group . lag )
WHERE instrumentation . provider = 'opentelemetry'
AND kafka . consumer_group . name = 'your-consumer-group'
브로커 상태 조회 활성 브로커 수:
FROM Metric SELECT latest ( kafka . brokers )
WHERE instrumentation . provider = 'opentelemetry'
AND kafka . cluster . name = 'your-cluster'
복제가 불완전한 파티션:
FROM Metric SELECT latest ( kafka . partition . under_replicated )
WHERE instrumentation . provider = 'opentelemetry'
FACET kafka . topic . name SINCE 1 hour ago
토픽별 메시지 처리량:
FROM Metric SELECT rate ( sum ( kafka . topic . messages ) , 1 minute ) as 'Messages/min'
WHERE instrumentation . provider = 'opentelemetry'
FACET kafka . topic . name SINCE 1 hour ago TIMESERIES
브로커별 네트워크 I/O:
FROM Metric SELECT rate ( sum ( kafka . network . io . bytes ) , 1 minute ) as 'Bytes/min'
WHERE instrumentation . provider = 'opentelemetry'
FACET kafka . broker . id , direction SINCE 1 hour ago TIMESERIES
고급 쿼리 모니터링 중점 분야별로 정리된 보다 자세한 쿼리 예시는 다음과 같습니다.
Cluster 개요 상위 수준 클러스터 통계를 확인하세요:
latest ( kafka . brokers ) AS 'Active Brokers' ,
latest ( kafka . cluster . topic . count ) AS 'Total Topics' ,
latest ( kafka . cluster . partition . count ) AS 'Total Partitions'
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
브로커 건강 개별 브로커의 건강 상태와 리더십을 모니터링하십시오.
latest ( kafka . partition . under_replicated ) AS 'Under-replicated Partitions' ,
latest ( kafka . broker . leader . count ) AS 'Leader Count' ,
latest ( kafka . partition . count ) AS 'Total Partitions'
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
클러스터 상태 클러스터 전체 상태 및 파티션 상태를 추적합니다.
latest ( kafka . partition . offline ) AS 'Offline Partitions' ,
latest ( kafka . cluster . partition . count ) AS 'Total Partitions' ,
latest ( kafka . cluster . topic . count ) AS 'Total Topics'
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
토픽 처리량 및 I/O 주제별 메시지 전송률 및 데이터 처리량을 모니터링합니다.
rate ( sum ( kafka . prod . msg . count ) , 1 minute ) AS 'Messages/min' ,
rate ( filter ( sum ( kafka . topic . io ) , WHERE direction = 'in' ) , 1 minute ) AS 'Bytes In/min' ,
rate ( filter ( sum ( kafka . topic . io ) , WHERE direction = 'out' ) , 1 minute ) AS 'Bytes Out/min'
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
소비자 지연 소비자 그룹 지연 및 처리 지연을 추적합니다.
latest ( kafka . consumer_group . lag_sum ) AS 'Total Lag'
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
요청 지연시간 요청 처리 시간 및 성능을 모니터링합니다.
latest ( kafka . request . time . avg ) AS 'Avg Latency' ,
latest ( kafka . request . time . 99 p ) AS '99th Percentile'
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
JVM 건강 Kafka 브로커의 JVM 메트릭을 모니터링합니다.
( latest ( jvm . memory . heap . used ) / latest ( jvm . memory . heap . max ) ) * 100 AS 'Heap Usage %' ,
rate ( sum ( jvm . gc . collections . count ) , 1 minute ) AS 'GC Count/min'
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
맞춤형 대시보드 만들기 여러 쿼리를 결합하여 포괄적인 Kafka 모니터링 대시보드를 생성하세요.
one.newrelic.com > Dashboards로 이동하세요.
"대시보드 생성"을 클릭하세요.
위의 NRQL 쿼리를 사용하여 위젯을 추가하세요.
위젯을 주요 영역별로 정리하세요:
Cluster 상태: 브로커 수, 복제 부족 파티션 수, 컨트롤러 상태 소비자 성능: 지연 시간, 처리량, 그룹 멤버십 토픽 메트릭: 메시지 전송률, 파티션 수, 복제 상태 리소스 활용률: 네트워크 I/O, JVM 메트릭, 디스크 사용량 알림 설정 팁 뉴렐릭은 Kafka에 대해 사전 구성된 골든 지표 알림을 제공합니다. 새로운 공지 조건을 생성할 때 Guided mode → Host integrations → Kafka (브로커, 클러스터, 토픽)를 선택하면 권장 공지 템플릿을 볼 수 있습니다.
NRQL 쿼리를 사용하여 사용자 지정 알림을 생성할 수도 있습니다.
높은 소비자 지연 공지 소비자 지연이 귀하의 허용 가능한 올리브 값을 초과하는 경우:
latest ( kafka . consumer_group . lag_sum )
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
권장값 : 중요한 소비자 그룹에 대해 지연 시 > 10,000개의 메시지를 공지합니다.
불완전 복제 파티션 파티션이 복제를 잃으면 다음과 같은 문제가 발생합니다.
sum ( kafka . partition . under_replicated )
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
권장값: 이전 값 : 파티션이 과소 복제(> 0)되는 경우 공지.
오프라인 파티션 파티션이 오프라인 상태가 되면 즉시 공지합니다.
latest ( kafka . partition . offline )
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
권장 값, 경계 : 파티션이 오프라인 상태가 되면 즉시 공지됩니다(> 0).
최소 ISR 하의 분할 파티션 동기화 복제본 수가 최소치 미만으로 떨어지면 공지합니다.
latest ( kafka . partition . under_min_isr )
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
권장 값, 경계 : 파티션이 최소 ISR(> 0) 아래로 떨어지는 경우 공지됩니다.
JVM 메모리 사용량이 높습니다. 힙 사용량이 중요한 경우 공지:
( latest ( jvm . memory . heap . used ) / latest ( jvm . memory . heap . max ) ) * 100
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
권장 값, 경계 : 지속적인 기간 동안 힙 사용량 > 85%인 경우를 공지합니다.
요청 실패 높은 요청 실패율에 대한 공지:
rate ( sum ( kafka . request . failed ) , 1 minute )
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
권장값, 경계 : 실패율이 전체 requests 의 1%를 초과하는 경우 공지됩니다.
부정한 지도자 선거 부정선거 관련 공지 (중개 실패를 나타냄):
rate ( sum ( kafka . unclean . election . rate ) , 1 minute )
WHERE kafka . cluster . name = 'production-cluster'
AND instrumentation . provider = 'opentelemetry'
권장 값, 릴레이 : 불결한 지도자 선거에 대한 공지(> 0).
다음 단계