이 섹션에서는 Apache Kafka용 관리형 서비스를 모니터링하는 데 사용할 수 있는 모니터링 측정항목을 간략하게 설명합니다. 이 문서에서는 Monitoring을 사용하여 Google Cloud 콘솔에서 Apache Kafka용 관리형 서비스 사용량을 모니터링하는 방법도 보여줍니다.
Apache Kafka용 관리형 서비스의 전체 측정항목 외에 다른 Google Cloud 리소스의 측정항목을 보려면 Monitoring을 사용하세요.
또는 Apache Kafka용 관리형 서비스 내에서 제공되는 측정항목을 선택하여 모니터링 대시보드를 사용할 수 있습니다. 자세한 내용은 다음 주제를 참조하세요.
Apache Kafka용 관리형 서비스 측정항목 개요
Apache Kafka용 관리형 서비스는 오픈소스 Kafka 배포에서 사용할 수 있는 여러 측정항목과 소비자 그룹 오프셋 지연과 같은 서비스별 측정항목을 내보냅니다. 모니터링의 경우 Apache Kafka용 관리형 서비스는 서비스 URL managedkafka.googleapis.com로 식별됩니다.
Managed Service for Apache Kafka 측정항목은 다음 네 가지 리소스 카테고리로 구성됩니다.
클러스터: 이러한 측정항목은 전반적인 클러스터 상태를 유지하기 위한 것입니다.
주제: 이러한 측정항목에는 게시자 및 소비자 비율과 오류가 포함됩니다. 이러한 측정항목은 Kafka 애플리케이션의 전반적인 상태와 브로커와 관련된 문제를 모니터링합니다.
주제 파티션: 이러한 측정항목은 개별 파티션과 관련된 성능 문제를 모니터링하고 디버깅하기 위한 것입니다. 예를 들어 키 분포가 고르지 않은 경우입니다.
주제 파티션 소비자 그룹: 이러한 측정항목은 주로 소비자 지연 시간과 같은 소비자 애플리케이션 상태를 모니터링합니다. 소비자 그룹의 오픈소스 Kafka 오류 측정항목은 파티션별로 제공되지 않고 주제 수준에서만 제공됩니다.
일부 측정항목은 브로커별로 그룹화할 수 있습니다. Managed Service for Apache Kafka 서비스 자체는 브로커를 리소스로 노출하지 않지만, 브로커를 모니터링하는 것은 과부하된 브로커로 인한 지연 시간과 같은 장애 시나리오를 감지하는 데 필수적입니다.
측정항목의 이름은 서비스 API URL, 모니터링 리소스, 측정항목을 포함하는 규칙을 따릅니다. 예를 들어 주제 message_in_count 측정항목 식별자는 managedkafka.googleapis.com/Topic/message_in_count입니다.
이러한 측정항목에 액세스하려면 단일 Apache Kafka용 관리형 서비스 측정항목 보기를 참고하세요.
시작하기 전에
Monitoring을 사용하기 전에 결제가 사용 설정된 Apache Kafka용 관리형 서비스 프로젝트를 준비해야 합니다. 이를 수행하는 한 가지 방법은 Apache Kafka용 관리형 서비스 빠른 시작을 완료하는 것입니다.
필수 역할 및 권한
모니터링 차트를 보는 데 필요한 권한을 얻으려면 관리자에게 프로젝트에 대한 관리형 Kafka 뷰어 (roles/managedkafka.Viewer) IAM 역할을 부여해 달라고 요청하세요.
역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.
커스텀 역할이나 다른 사전 정의된 역할을 통해 필요한 권한을 얻을 수도 있습니다.
이 역할에 대한 자세한 내용은 Apache Kafka용 관리형 서비스 사전 정의된 역할을 참고하세요.
단일 Apache Kafka용 관리형 서비스 측정항목 보기
Google Cloud 콘솔을 사용하여 단일 Apache Kafka용 관리형 서비스 측정항목을 보려면 다음 단계를 수행합니다.
Google Cloud 콘솔에서 Monitoring 페이지로 이동합니다.
탐색 창에서 측정항목 탐색기를 선택합니다.
구성 섹션에서 측정항목 선택을 클릭합니다.
필터에
Apache Kafka를 입력합니다.활성 리소스에서 다음 중 하나를 선택합니다.
Apache Kafka 클러스터
Apache Kafka 주제
Apache Kafka 주제 파티션
Apache Kafka 주제 파티션 소비자 그룹
측정항목을 선택하고 적용을 클릭합니다.
특정 측정항목의 페이지가 열립니다.
Cloud Monitoring 문서를 읽고 모니터링 대시보드에 대해 자세히 알아볼 수 있습니다.
클러스터 측정항목
| 측정항목 | 설명 | 상응하는 MBean 이름 |
|---|---|---|
| cpu/core_usage_time | 클러스터의 누적 CPU 사용량(vCPU)입니다. 이는 클러스터의 전체 운영 비용을 이해하는 데 유용합니다. | 해당 사항 없음 |
| cpu/limit | 클러스터에 구성된 현재 CPU 수입니다. cpu/usage 측정항목과의 비율로 CPU 사용률을 모니터링하는 데 사용할 수 있습니다. |
해당 사항 없음 |
| memory/usage | 클러스터의 현재 RAM 사용량입니다. memory/limit 측정항목과의 비율로 RAM 사용률을 모니터링하는 데 사용할 수 있습니다. |
해당 사항 없음 |
| memory/limit | 현재 구성된 클러스터의 RAM 크기입니다. memory/usage 측정항목과의 비율로 RAM 사용률을 모니터링하는 데 사용할 수 있습니다. |
해당 사항 없음 |
| cluster_byte_in_count | 클라이언트에서 모든 주제로 전송된 총 바이트 수입니다. | kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec |
| cluster_byte_out_count | 모든 주제에서 클라이언트로 전송된 총 바이트 수입니다. | kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec |
| cluster_message_in_count | 모든 주제에 게시된 메시지의 총 개수입니다. | kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec |
| request_count | 브로커에 수행된 총 요청 수 | kafka.network:type=RequestMetrics,name=RequestsPerSec,request=
{Produce|FetchConsumer|FetchFollower},version=([0-9]+) |
| request_byte_count | 클러스터에 수행된 요청의 총 크기(바이트)입니다. | kafka.network:type=RequestMetrics,name=RequestBytes,request=
([-.\w]+) |
| partitions | 이 클러스터에서 처리하는 현재 파티션 수로, 브로커별로 분류됩니다. | kafka.server:type=ReplicaManager,name=PartitionCount |
| request_latencies | 다양한 백분위수에서 각 요청에 걸린 시간(밀리초)입니다. | kafka.network:type=RequestMetrics,name=TotalTimeMs,request=
{Produce|FetchConsumer|FetchFollower} |
| consumer_groups | 브로커에서 현재 데이터를 소비 중인 소비자 그룹의 개수 | kafka.server:type=GroupMetadataManager,name=NumGroups |
| offline_partitions | 컨트롤러에서 모니터링된 오프라인 주제 파티션 수입니다. | kafka.controller:type=KafkaController,name=OfflinePartitionCount |
주제 측정항목
| 측정항목 | 설명 | 상응하는 MBean 이름 |
|---|---|---|
| message_in_count | 주제에 게시된 메시지의 총수입니다. | kafka.server:type=BrokerTopicMetrics,name=MessagesInPerSec,
topic=([-.\w]+) |
| byte_in_count | 클라이언트에서 토픽으로 전송된 총 바이트 수입니다. | kafka.server:type=BrokerTopicMetrics,name=BytesInPerSec,topic=([-.\w]+) |
| topic_request_count | 토픽에 수행된 총 생성 및 가져오기 요청 수입니다. | kafka.server:type=BrokerTopicMetrics,name=TotalProduceRequestsPerSec,topic=([-.\w]+)kafka.server:type=BrokerTopicMetrics,name=TotalFetchRequestsPerSec,topic=([-.\w]+) |
| topic_error_count | 토픽에 수행된 실패한 생성 및 실패한 가져오기 요청의 총수입니다. | kafka.server:type=BrokerTopicMetrics,name=FailedProduceRequestsPerSec,topic=([-.\w]+)kafka.server:type=BrokerTopicMetrics,name=FailedFetchRequestsPerSec,topic=([-.\w]+) |
| byte_out_count | 클라이언트로 전송된 총 바이트 수입니다. | kafka.server:type=BrokerTopicMetrics,name=BytesOutPerSec,
topic=([-.\w]+) |
파티션 측정항목
| 측정항목 | 설명 | 상응하는 MBean 이름 |
|---|---|---|
| consumer_lag | 리더와 각 팔로어 복제본 간의 메시지 복제 지연입니다. |
kafka.server:type=FetcherLagMetrics,name=ConsumerLag,clientId=([-.\w]+),topic=([-.\w]+),partition=([0-9]+)
|
| log_segments | 현재 로그 세그먼트 수입니다. 이는 스토리지 티어링이 정상적으로 유지되도록 하는 데 유용합니다. | kafka.log:type=Log,name=NumLogSegments,topic=([-.\w]+),partition=([0-9]+) |
| first_offset | 주제의 각 파티션의 첫 번째 오프셋입니다. last_offset와 함께 사용하면 저장된 총 메시지 수의 상한을 모니터링하고 가장 오래된 메시지의 실제 오프셋을 찾는 데 사용할 수 있습니다. |
kafka.log:type=Log,name=LogStartOffset,topic=([-.\w]+),partition=([0-9]+) |
| last_offset | 파티션의 마지막 오프셋입니다. 이는 시간 경과에 따른 각 파티션의 최신 오프셋을 찾는 데 사용할 수 있습니다. 이는 과거의 특정 시점부터 데이터를 다시 처리하는 데 필요한 특정 오프셋을 식별하는 데 유용할 수 있습니다. | kafka.log:type=Log,name=LogEndOffset,topic=([-.\w]+),partition=([0-9]+) |
| byte_size | 디스크에 있는 파티션의 크기(바이트)입니다. | - |
소비자 그룹 측정항목
| 측정항목 | 설명 | 상응하는 MBean 이름 |
|---|---|---|
| Offset_lag | 각 파티션의 소비자 그룹에 대한 최신 오프셋과 마지막 커밋된 오프셋의 차이입니다. 이 측정항목은 소비자가 아직 성공적으로 처리하지 않은 생성된 메시지 수를 추정합니다. | 해당 사항 없음 |