AWS MSK (Prometheus)¶
Amazon Managed Streaming for Apache Kafka(Amazon MSK)오픈 모니터링은 Kafka Broker JMX와 Broker 노드 지표를 Prometheus 형식으로 노출할 수 있습니다. DataKit은 AWS AK, Func 또는 CloudWatch 클라우드 수집 스크립트를 사용하지 않고 Prometheus 수집기를 통해 이러한 엔드포인트를 직접 수집합니다.
구성¶
사전 조건¶
- 이 통합은 Amazon MSK 오픈 모니터링이 활성화된 MSK Provisioned 클러스터에 적용됩니다.
- 기존 클러스터에서 오픈 모니터링을 활성화하려면 먼저
ACTIVE상태여야 합니다. 새 클러스터는 생성 시 활성화할 수 있으며, 기존 클러스터는 클러스터 속성의 Monitoring 영역에서 편집하여 활성화할 수 있습니다. - DataKit은 MSK Broker의 사설 DNS를 해석하고 접근할 수 있는 네트워크에 배포되어야 하며, 일반적으로 동일한 VPC이거나 네트워크가 연결된 VPC여야 합니다.
- MSK 보안 그룹은 DataKit이 속한 보안 그룹 또는 서브넷이 TCP
11001과11002에 접근할 수 있도록 허용해야 하며, VPC에는 DNS가 활성화되어 있어야 합니다. 네트워크 요구 사항은 AWS MSK Prometheus Collector 사전 조건을 참고하십시오. - JMX Exporter는
11001, Node Exporter는11002를 사용합니다. AWS는 수집 간격을 60초 이상으로 설정할 것을 권장하며, 너무 짧은 간격은 클러스터 CPU 사용률을 증가시킬 수 있습니다.
주의: KRaft 메타데이터 모드와 MSK Express Broker는 오픈 모니터링과 퍼블릭 액세스를 동시에 사용할 수 없습니다. 오픈 모니터링 자체는 무료이지만, 가용 영역 간 데이터 전송에는 비용이 발생할 수 있습니다.
오픈 모니터링 활성화¶
새 MSK Provisioned 클러스터를 생성할 때 Monitoring 영역에서「Enable open monitoring with Prometheus」를 선택하고, JMX Exporter, Node Exporter 또는 둘 다 활성화합니다.
기존 클러스터는 아래 절차로 활성화합니다.
- Amazon MSK 콘솔에 로그인한 뒤 대상 클러스터를 엽니다.
- Properties 탭에서 Monitoring을 찾아 Edit를 클릭합니다.
- 「Enable open monitoring with Prometheus」를 선택합니다.
- JMX Exporter, Node Exporter 또는 둘 다 활성화한 뒤 변경 사항을 저장합니다.
AWS CLI로도 모니터링 구성을 업데이트할 수 있습니다.
aws kafka update-monitoring \
--cluster-arn <cluster-arn> \
--current-version <current-version> \
--open-monitoring 'Prometheus={JmxExporter={EnabledInBroker=true},NodeExporter={EnabledInBroker=true}}'
자세한 내용은 AWS 공식 문서를 참고하십시오.
Prometheus 모니터링 대상 가져오기¶
ListNodes를 사용하여 클러스터의 Broker DNS를 가져옵니다.
반환 결과의 BrokerNodeInfo.Endpoints에 있는 모든 Broker DNS를 기록합니다. 각 Broker마다 두 개의 대상을 구성해야 합니다.
| 유형 | 대상 | 설명 |
|---|---|---|
| JMX Exporter | <broker-dns>:11001 |
Kafka Broker JMX 지표와 Consumer Lag 지표. |
| Node Exporter | <broker-dns>:11002 |
Broker 노드 CPU, 메모리, 디스크 및 네트워크 지표. |
KRaft 클러스터에서 Controller JMX 지표도 수집하려면 ControllerNodeInfo.Endpoints에 반환된 Controller DNS를 11001 대상에 추가해야 합니다. 엔드포인트 형식과 KRaft 설명은 AWS Prometheus Host 구성을 참고하십시오.
DataKit 호스트에서 네트워크 연결을 검증합니다.
curl -sS "http://<broker-dns>:11001/metrics" | head
curl -sS "http://<broker-dns>:11002/metrics" | head
DataKit 구성¶
DataKit 설치 디렉터리의 conf.d/samples 디렉터리로 이동하여 prom.conf.sample을 복사한 뒤 aws_msk_prom.conf로 이름을 바꿉니다.
aws_msk_prom.conf를 조정합니다. 모든 Broker DNS를 해당 urls에 추가하고, KRaft Controller DNS는 JMX Exporter 구성에만 추가합니다.
[[inputs.prom]]
urls = [
"http://<broker-dns-1>:11001/metrics",
"http://<broker-dns-2>:11001/metrics",
# KRaft 선택 사항:
# "http://<controller-dns-1>:11001/metrics",
]
source = "kafka_jmx"
interval = "60s"
metric_name_filter = ["^kafka_"]
measurement_prefix = ""
keep_exist_metric_name = false
honor_timestamps = true
election = false
disable_host_tag = true
disable_instance_tag = true
disable_info_tag = false
[[inputs.prom.measurements]]
prefix = "kafka_controller_"
name = "kafka_controller"
[[inputs.prom.measurements]]
prefix = "kafka_network_"
name = "kafka_network"
[[inputs.prom.measurements]]
prefix = "kafka_log_"
name = "kafka_log"
[[inputs.prom.measurements]]
prefix = "kafka_server_"
name = "kafka_server"
[inputs.prom.tags]
cloud_provider = "aws"
service = "msk"
region_id = "<aws-region>"
cluster_id = "<cluster-arn-or-id>"
cluster_name = "<msk-cluster-name>"
[[inputs.prom]]
urls = [
"http://<broker-dns-1>:11002/metrics",
"http://<broker-dns-2>:11002/metrics",
]
source = "kafka_node"
interval = "60s"
metric_name_filter = ["^node_"]
measurement_prefix = ""
keep_exist_metric_name = false
honor_timestamps = true
election = false
disable_host_tag = true
disable_instance_tag = true
disable_info_tag = false
[[inputs.prom.measurements]]
prefix = "node_"
name = "kafka_node"
[inputs.prom.tags]
cloud_provider = "aws"
service = "msk"
region_id = "<aws-region>"
cluster_id = "<cluster-arn-or-id>"
cluster_name = "<msk-cluster-name>"
# 선택 사항: 비즈니스 Producer, Consumer, Kafka Streams, Kafka Connect 등의 클라이언트 JMX Exporter 지표를 수집합니다.
[[inputs.prom]]
urls = [
"http://<producer-client-ip>:7072/metrics",
"http://<consumer-client-ip>:7073/metrics",
"http://<streams-client-ip>:7074/metrics",
"http://<connect-worker-ip>:7075/metrics",
]
source = "kafka_client"
interval = "60s"
metric_name_filter = ["^kafka_(producer|consumer|stream|connect)_"]
measurement_prefix = ""
keep_exist_metric_name = false
honor_timestamps = true
election = false
disable_host_tag = false
disable_instance_tag = true
disable_info_tag = false
[[inputs.prom.measurements]]
prefix = "kafka_producer_"
name = "kafka_producer"
[[inputs.prom.measurements]]
prefix = "kafka_consumer_"
name = "kafka_consumer"
[[inputs.prom.measurements]]
prefix = "kafka_connect_"
name = "kafka_connect"
[[inputs.prom.measurements]]
prefix = "kafka_stream_"
name = "kafka_stream"
[inputs.prom.tags]
cloud_provider = "aws"
service = "msk"
region_id = "<aws-region>"
cluster_id = "<cluster-arn-or-id>"
cluster_name = "<msk-cluster-name>"
11001은 Kafka Broker JMX와 Consumer Lag 지표를 노출하고, 11002는 Broker 노드 CPU와 디스크 등의 지표를 노출합니다. 구체적인 범위는 AWS Prometheus 지표 설명을 참고하십시오. Producer, Consumer, Kafka Streams, Kafka Connect는 클라이언트 프로세스 지표이므로, 해당 프로세스에 JMX Exporter를 별도로 마운트한 뒤 수집해야 합니다.
구성이 끝나면 DataKit을 재시작합니다.
검증¶
- DataKit 로그에서
aws_msk_prom.conf에 연결 또는 파싱 오류가 없는지 확인합니다. - Guance「메트릭」에서
kafka_controller,kafka_network,kafka_server,kafka_node등의 메트릭 세트가 존재하는지 확인합니다. - 메트릭 태그에서
cloud_provider=aws,cluster_name=<msk-cluster-name>, 그리고 Brokerhost가 예상과 일치하는지 확인합니다. - 클라이언트 JMX Exporter를 구성했다면
kafka_producer,kafka_consumer,kafka_stream,kafka_connect메트릭 세트에도 데이터가 있는지 다시 확인합니다.
지표¶
Prometheus 수집 구성이 완료되면, 권장 지표 범위에는 다음 9개의 지표 세트와 measurement, field, 고정 의미 태그로 구분되는 115개의 지표 컨텍스트가 포함됩니다. Amazon MSK 오픈 모니터링은 Broker JMX와 Node Exporter 지표를 기본 제공하며, Producer, Consumer, Kafka Streams, Kafka Connect 지표는 해당 클라이언트 프로세스에서 JMX Exporter를 별도로 활성화해야 합니다.
Controller 지표¶
kafka_controller 지표 세트에는 8개의 권장 지표 컨텍스트가 포함됩니다.
| MetricName | MetricDescribe | Dimensions | Unit |
|---|---|---|---|
kafka_controller.ControllerEventManager_Count{name=EventQueueTimeMs} |
Controller 이벤트 큐 대기 시간 지표의 누적 샘플 수. | cloud_provider, cluster_name, host, name |
count |
kafka_controller.ControllerEventManager_Value{name=EventQueueSize} |
Controller 이벤트 큐에서 현재 처리 대기 중인 이벤트 수. | cloud_provider, cluster_name, host, name |
count |
kafka_controller.KafkaController_Value{name=ActiveBrokerCount} |
현재 활성 상태이며 클러스터 서비스에 참여 중인 Broker 수. | cloud_provider, cluster_name, host, name |
count |
kafka_controller.KafkaController_Value{name=ActiveControllerCount} |
클러스터에서 현재 활성인 Controller 수로, 정상적으로는 보통 1입니다. | cloud_provider, cluster_name, host, name |
count |
kafka_controller.KafkaController_Value{name=FencedBrokerCount} |
현재 격리되어 정상적인 클러스터 서비스에 참여할 수 없는 Broker 수. | cloud_provider, cluster_name, host, name |
count |
kafka_controller.KafkaController_Value{name=GlobalPartitionCount} |
클러스터의 현재 전체 partition 수; 여러 Broker가 동일한 전역 값을 노출하면 최대값을 사용합니다. | cloud_provider, cluster_name, host, name |
count |
kafka_controller.KafkaController_Value{name=GlobalTopicCount} |
클러스터의 현재 전체 Topic 수; 여러 Broker가 동일한 전역 값을 노출하면 최대값을 사용합니다. | cloud_provider, cluster_name, host, name |
count |
kafka_controller.KafkaController_Value{name=OfflinePartitionsCount} |
클러스터에서 현재 Leader가 없어 정상적으로 읽기/쓰기를 할 수 없는 partition 수. | cloud_provider, cluster_name, host, name |
count |
네트워크 요청 지표¶
kafka_network 지표 세트에는 24개의 권장 지표 컨텍스트가 포함됩니다.
| MetricName | MetricDescribe | Dimensions | Unit |
|---|---|---|---|
kafka_network.RequestChannel_Value{name=RequestQueueSize} |
Broker 요청 큐에서 현재 처리 대기 중인 항목 수 | cloud_provider, cluster_name, host, name |
count |
kafka_network.RequestChannel_Value{name=ResponseQueueSize} |
Broker 응답 큐에서 현재 처리 대기 중인 항목 수 | cloud_provider, cluster_name, host, name |
count |
kafka_network.RequestMetrics_95thPercentile{name=TotalTimeMs;request=FetchConsumer} |
FetchConsumer 요청의 엔드투엔드 P95 처리 시간 | cloud_provider, cluster_name, host |
ms |
kafka_network.RequestMetrics_95thPercentile{name=TotalTimeMs;request=Produce} |
Produce 요청의 엔드투엔드 P95 처리 시간 | cloud_provider, cluster_name, host |
ms |
kafka_network.RequestMetrics_Max{name=TemporaryMemoryBytes;request=Produce} |
Broker가 Produce 요청을 처리할 때 사용한 최대 임시 메모리. | cloud_provider, cluster_name, host, name, request |
B |
kafka_network.RequestMetrics_Mean{name=LocalTimeMs;request=FetchConsumer} |
FetchConsumer 요청의 로컬 처리 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=LocalTimeMs;request=FetchFollower} |
FetchFollower 요청의 로컬 처리 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=MessageConversionsTimeMs;request=Produce} |
Produce 요청의 메시지 형식 변환 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=RemoteTimeMs;request=FetchConsumer} |
FetchConsumer 요청의 원격 처리 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=RemoteTimeMs;request=FetchFollower} |
FetchFollower 요청의 원격 처리 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=RemoteTimeMs;request=Produce} |
Produce 요청의 원격 처리 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=RequestQueueTimeMs;request=FetchConsumer} |
FetchConsumer 요청이 요청 큐에서 대기한 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=RequestQueueTimeMs;request=Produce} |
Produce 요청이 요청 큐에서 대기한 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=ResponseQueueTimeMs;request=FetchConsumer} |
FetchConsumer 요청이 응답 큐에서 대기한 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=ResponseQueueTimeMs;request=FetchFollower} |
FetchFollower 요청이 응답 큐에서 대기한 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=ResponseQueueTimeMs;request=Produce} |
Produce 요청이 응답 큐에서 대기한 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=ResponseSendTimeMs;request=FetchConsumer} |
FetchConsumer 요청의 응답 전송 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=ResponseSendTimeMs;request=FetchFollower} |
FetchFollower 요청의 응답 전송 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=ResponseSendTimeMs;request=Produce} |
Produce 요청의 응답 전송 평균 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=TotalTimeMs;request=FetchConsumer} |
FetchConsumer 요청의 엔드투엔드 평균 처리 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_Mean{name=TotalTimeMs;request=Produce} |
Produce 요청의 엔드투엔드 평균 처리 시간 | cloud_provider, cluster_name, host, name, request |
ms |
kafka_network.RequestMetrics_OneMinuteRate{name=RequestsPerSec} |
Broker의 최근 1분 요청 속도 | cloud_provider, cluster_name, host, name, request |
ops |
kafka_network.SocketServer_Value{name=MemoryPoolUsed} |
Broker 네트워크 계층 메모리 풀의 현재 사용 메모리 크기 | cloud_provider, cluster_name, host, name |
B |
kafka_network.SocketServer_Value{name=NetworkProcessorAvgIdlePercent} |
Broker 네트워크 처리 스레드의 유휴 상태 시간 비율 | cloud_provider, cluster_name, host, name |
percent |
로그 지표¶
kafka_log 지표 세트에는 4개의 권장 지표 컨텍스트가 포함됩니다.
| MetricName | MetricDescribe | Dimensions | Unit |
|---|---|---|---|
kafka_log.LogFlushStats_OneMinuteRate{name=LogFlushRateAndTimeMs} |
Broker가 초당 수행하는 로그 flush 작업의 평균 횟수 | cloud_provider, cluster_name, host, name |
ops |
kafka_log.Log_Value{name=LogEndOffset} |
선택한 Topic partition의 현재 로그 끝 offset | cloud_provider, cluster_name, host, name, partition, topic |
offset |
kafka_log.Log_Value{name=LogStartOffset} |
선택한 Topic partition의 현재 가장 오래된 읽기 가능 로그 offset | cloud_provider, cluster_name, host, name, partition, topic |
offset |
kafka_log.Log_Value{name=Size} |
선택한 Topic partition 로그가 차지하는 디스크 공간 | cloud_provider, cluster_name, host, name, topic |
B |
Broker 서비스 지표¶
kafka_server 지표 세트에는 10개의 권장 지표 컨텍스트가 포함됩니다.
| MetricName | MetricDescribe | Dimensions | Unit |
|---|---|---|---|
kafka_server.BrokerTopicMetrics_OneMinuteRate{name=BytesInPerSec} |
Broker 또는 Topic이 초당 수신한 생산 메시지 바이트 수 | cloud_provider, cluster_name, host, name, topic |
B/S |
kafka_server.BrokerTopicMetrics_OneMinuteRate{name=BytesOutPerSec} |
Broker 또는 Topic이 초당 소비자에게 전송한 바이트 수 | cloud_provider, cluster_name, host, name, topic |
B/S |
kafka_server.BrokerTopicMetrics_OneMinuteRate{name=FetchMessageConversionsPerSec} |
Broker가 초당 수행한 Fetch 메시지 형식 변환 횟수 | cloud_provider, cluster_name, host, name, topic |
ops |
kafka_server.BrokerTopicMetrics_OneMinuteRate{name=MessagesInPerSec} |
Broker 또는 Topic이 초당 수신한 메시지 수 | cloud_provider, cluster_name, host, name, topic |
ops |
kafka_server.BrokerTopicMetrics_OneMinuteRate{name=TotalFetchRequestsPerSec} |
Broker 또는 Topic이 초당 받은 Fetch 요청 수 | cloud_provider, cluster_name, host, name, topic |
ops |
kafka_server.BrokerTopicMetrics_OneMinuteRate{name=TotalProduceRequestsPerSec} |
Broker 또는 Topic이 초당 받은 Produce 요청 수 | cloud_provider, cluster_name, host, name, topic |
ops |
kafka_server.KafkaRequestHandlerPool_FiveMinuteRate{name=RequestHandlerAvgIdlePercent} |
Broker 요청 처리 스레드의 최근 5분 평균 유휴 비율 | cloud_provider, cluster_name, host |
percent |
kafka_server.ReplicaManager_Value{name=UnderMinIsrPartitionCount} |
동기 복제본 수가 min.insync.replicas보다 낮은 partition 수 | cloud_provider, cluster_name |
count |
kafka_server.ReplicaManager_Value{name=UnderReplicatedPartitions} |
복제본 수가 목표 replication factor보다 낮은 partition 수 | cloud_provider, cluster_name |
count |
kafka_server.socket_server_metrics_response_rate |
Broker 네트워크 처리 스레드가 초당 전송한 응답 수. | cloud_provider, cluster_name, host |
ops |
노드 리소스 지표¶
kafka_node 지표 세트에는 9개의 권장 지표 컨텍스트가 포함됩니다.
| MetricName | MetricDescribe | Dimensions | Unit |
|---|---|---|---|
kafka_node.cpu_seconds_total{mode!=idle} |
Broker 노드의 비유휴 CPU 시간 증가율을 전체 CPU 시간 증가율로 나눈 CPU 사용률 | cloud_provider, cluster_name, host, mode |
percent |
kafka_node.disk_read_bytes_total |
Broker 노드 디스크가 초당 읽은 바이트 수 | cloud_provider, cluster_name, host |
B/S |
kafka_node.disk_reads_completed_total |
Broker 노드 디스크가 초당 완료한 읽기 작업 수 | cloud_provider, cluster_name, host |
ops |
kafka_node.disk_writes_completed_total |
Broker 노드 디스크가 초당 완료한 쓰기 작업 수 | cloud_provider, cluster_name, host |
ops |
kafka_node.disk_written_bytes_total |
Broker 노드 디스크가 초당 기록한 바이트 수 | cloud_provider, cluster_name, host |
B/S |
kafka_node.filesystem_avail_bytes |
Broker 노드 파일 시스템의 사용 공간 비율. | cloud_provider, cluster_name, host |
percent |
kafka_node.filesystem_files |
Broker 노드 파일 시스템의 사용 Inode 비율. | cloud_provider, cluster_name, host |
percent |
kafka_node.filesystem_files_free |
Broker 노드 파일 시스템의 사용 Inode 비율. | cloud_provider, cluster_name, host |
percent |
kafka_node.filesystem_size_bytes |
Broker 노드 파일 시스템의 사용 공간 비율. | cloud_provider, cluster_name, host |
percent |
Producer 클라이언트 지표¶
kafka_producer 지표 세트에는 13개의 권장 지표 컨텍스트가 포함됩니다.
| MetricName | MetricDescribe | Dimensions | Unit |
|---|---|---|---|
kafka_producer.metrics_buffer_available_bytes |
Producer가 현재 사용하지 않는 버퍼 메모리 크기 | client_id, cloud_provider, cluster_name, host |
B |
kafka_producer.metrics_buffer_exhausted |
Producer가 버퍼 소진으로 인해 폐기한 누적 record 전송 수 | client_id, cloud_provider, cluster_name, host |
count |
kafka_producer.metrics_buffer_exhausted_rate |
Producer가 초당 버퍼 소진으로 인해 폐기한 record 전송 수 | client_id, cloud_provider, cluster_name, host |
ops |
kafka_producer.metrics_bufferpool_wait_time_ns |
Producer가 버퍼 공간 할당을 기다린 누적 시간 | client_id, cloud_provider, cluster_name, host |
ns |
kafka_producer.metrics_connection_count |
클라이언트의 현재 활성 연결 수 | client_id, cloud_provider, cluster_name, host |
count |
kafka_producer.metrics_failed_authentication |
클라이언트 인증에 실패한 누적 연결 수 | client_id, cloud_provider, cluster_name, host |
count |
kafka_producer.metrics_flush_time_ns |
Producer가 flush 작업을 수행하는 데 걸린 누적 시간 | client_id, cloud_provider, cluster_name, host |
ns |
kafka_producer.metrics_io_wait_time_ns |
Producer I/O 스레드가 읽기/쓰기 가능한 소켓을 기다린 누적 시간 | client_id, cloud_provider, cluster_name, host |
ns |
kafka_producer.metrics_request_rate |
클라이언트가 초당 전송한 요청 수 | client_id, cloud_provider, cluster_name, host |
ops |
kafka_producer.metrics_requests_in_flight |
Producer가 전송했지만 아직 응답을 받지 못한 요청 수 | client_id, cloud_provider, cluster_name, host |
count |
kafka_producer.metrics_response_rate |
클라이언트가 초당 받은 응답 수 | client_id, cloud_provider, cluster_name, host |
ops |
kafka_producer.metrics_select_rate |
클라이언트 I/O 스레드가 초당 select를 실행한 횟수 | client_id, cloud_provider, cluster_name, host |
ops |
kafka_producer.metrics_txn_commit_time_ns |
Producer가 트랜잭션을 커밋하는 데 소요한 누적 시간 | client_id, cloud_provider, cluster_name, host |
ns |
Consumer 클라이언트 지표¶
kafka_consumer 지표 세트에는 14개의 권장 지표 컨텍스트가 포함됩니다.
| MetricName | MetricDescribe | Dimensions | Unit |
|---|---|---|---|
kafka_consumer.coordinator_metrics_rebalance_latency |
Consumer Group의 가장 최근 rebalance 총 소요 시간 | client_id, cloud_provider, cluster_name, host |
ms |
kafka_consumer.coordinator_metrics_rebalance_rate_per_hour |
Consumer Group에서 시간당 발생하는 rebalance 평균 횟수 | client_id, cloud_provider, cluster_name, host |
회/시간 |
kafka_consumer.metrics_connection_close_rate |
Consumer가 초당 닫은 연결 수 | client_id, cloud_provider, cluster_name, host |
ops |
kafka_consumer.metrics_connection_count |
클라이언트의 현재 활성 연결 수 | client_id, cloud_provider, cluster_name, host |
count |
kafka_consumer.metrics_failed_authentication |
클라이언트 인증에 실패한 누적 연결 수 | client_id, cloud_provider, cluster_name, host |
count |
kafka_consumer.metrics_incoming_byte_rate |
클라이언트가 초당 네트워크 소켓에서 읽은 바이트 수 | client_id, cloud_provider, cluster_name, host |
B/S |
kafka_consumer.metrics_io_time_ns_avg |
Consumer가 각 select 호출에서 I/O를 수행한 평균 시간 | client_id, cloud_provider, cluster_name, host |
ns |
kafka_consumer.metrics_io_wait_time_ns_avg |
Consumer I/O 스레드가 읽기/쓰기 가능한 소켓을 기다린 평균 시간 | client_id, cloud_provider, cluster_name, host |
ns |
kafka_consumer.metrics_outgoing_byte_rate |
클라이언트가 초당 Broker로 전송한 바이트 수 | client_id, cloud_provider, cluster_name, host |
B/S |
kafka_consumer.metrics_request_rate |
클라이언트가 초당 전송한 요청 수 | client_id, cloud_provider, cluster_name, host |
ops |
kafka_consumer.metrics_request_size_avg |
Consumer 요청의 평균 크기 | client_id, cloud_provider, cluster_name, host |
B |
kafka_consumer.metrics_response_rate |
클라이언트가 초당 받은 응답 수 | client_id, cloud_provider, cluster_name, host |
ops |
kafka_consumer.metrics_select_rate |
클라이언트 I/O 스레드가 초당 select를 실행한 횟수 | client_id, cloud_provider, cluster_name, host |
ops |
kafka_consumer.metrics_time_between_poll_avg |
Consumer의 연속 두 poll 호출 사이 평균 간격 | client_id, cloud_provider, cluster_name, host |
ms |
Kafka Streams 지표¶
kafka_stream 지표 세트에는 25개의 권장 지표 컨텍스트가 포함됩니다.
| MetricName | MetricDescribe | Dimensions | Unit |
|---|---|---|---|
kafka_stream.stream_state_metrics_all_rate |
Kafka Streams 상태 저장소에서 초당 수행하는 작업 수 | cloud_provider, cluster_name, host, rocksdb_state_id, thread_id |
ops |
kafka_stream.stream_state_metrics_block_cache_capacity |
Kafka Streams RocksDB 블록 캐시 용량 | cloud_provider, cluster_name, host, rocksdb_state_id, thread_id |
B |
kafka_stream.stream_state_metrics_block_cache_data_hit_ratio |
Kafka Streams RocksDB 블록 캐시 데이터 적중 비율 | cloud_provider, cluster_name, host, rocksdb_state_id, thread_id |
percent |
kafka_stream.stream_state_metrics_block_cache_filter_hit_ratio |
Kafka Streams RocksDB 블록 캐시 필터 적중 비율 | cloud_provider, cluster_name, host, rocksdb_state_id, thread_id |
percent |
kafka_stream.stream_state_metrics_block_cache_index_hit_ratio |
Kafka Streams RocksDB 블록 캐시 인덱스 적중 비율 | cloud_provider, cluster_name, host, rocksdb_state_id, thread_id |
percent |
kafka_stream.stream_state_metrics_block_cache_usage |
Kafka Streams RocksDB 블록 캐시 현재 사용량 | cloud_provider, cluster_name, host, rocksdb_state_id, thread_id |
B |
kafka_stream.stream_state_metrics_bytes_read_compaction_rate |
Kafka Streams 상태 저장소 압축에서 초당 읽은 바이트 수 | cloud_provider, cluster_name, host, rocksdb_state_id, thread_id |
B/S |
kafka_stream.stream_state_metrics_bytes_read_rate |
Kafka Streams 상태 저장소에서 초당 읽은 바이트 수 | cloud_provider, cluster_name, host, rocksdb_state_id, thread_id |
B/S |
kafka_stream.stream_state_metrics_bytes_written_compaction_rate |
Kafka Streams 상태 저장소 압축에서 초당 기록한 바이트 수 | cloud_provider, cluster_name, host, rocksdb_state_id, thread_id |
B/S |
kafka_stream.stream_state_metrics_bytes_written_rate |
Kafka Streams 상태 저장소에서 초당 기록한 바이트 수 | cloud_provider, cluster_name, host, rocksdb_state_id, thread_id |
B/S |
kafka_stream.stream_task_metrics_active_process_ratio |
Kafka Streams 작업 스레드가 record 처리에 사용한 시간 비율 | cloud_provider, cluster_name, host, task_id, thread_id |
percent |
kafka_stream.stream_task_metrics_cache_size_bytes |
Kafka Streams 작업 캐시의 총 크기 | cloud_provider, cluster_name, host, task_id, thread_id |
B |
kafka_stream.stream_task_metrics_enforced_processing_rate |
Kafka Streams 작업이 초당 강제 처리를 수행한 횟수 | cloud_provider, cluster_name, host, task_id, thread_id |
ops |
kafka_stream.stream_task_metrics_process_rate |
Kafka Streams 작업이 초당 처리한 record 수 | cloud_provider, cluster_name, host, task_id, thread_id |
ops |
kafka_stream.stream_thread_metrics_blocked_time_ns |
Kafka Streams 스레드가 대기 때문에 차단된 누적 시간 | cloud_provider, cluster_name, host, thread_id |
ns |
kafka_stream.stream_thread_metrics_commit_rate |
Kafka Streams 스레드가 초당 상태를 커밋한 횟수 | cloud_provider, cluster_name, host, thread_id |
ops |
kafka_stream.stream_thread_metrics_poll_latency_avg |
Kafka Streams 스레드의 poll 호출 평균 지연 | cloud_provider, cluster_name, host, thread_id |
ms |
kafka_stream.stream_thread_metrics_poll_rate |
Kafka Streams 스레드가 초당 poll을 실행한 횟수 | cloud_provider, cluster_name, host, thread_id |
ops |
kafka_stream.stream_thread_metrics_task |
Kafka Streams 스레드가 생성한 누적 task 수 | cloud_provider, cluster_name, host, thread_id |
count |
kafka_stream.stream_thread_metrics_task_closed |
Kafka Streams 스레드가 종료한 누적 task 수 | cloud_provider, cluster_name, host, thread_id |
count |
kafka_stream.stream_thread_metrics_thread_start_time |
Kafka Streams 스레드 시작 타임스탬프 | cloud_provider, cluster_name, host, thread_id |
ms |
kafka_stream.stream_topic_metrics_bytes_consumed |
Kafka Streams가 Topic에서 누적 소비한 바이트 수 | cloud_provider, cluster_name, host, thread_id, topic |
B |
kafka_stream.stream_topic_metrics_bytes_produced |
Kafka Streams가 Topic으로 누적 생산한 바이트 수 | cloud_provider, cluster_name, host, thread_id, topic |
B |
kafka_stream.stream_topic_metrics_records_consumed |
Kafka Streams 소스 프로세서 노드가 누적 소비한 record 수 | cloud_provider, cluster_name, host, processor_node_id, thread_id, topic |
count |
kafka_stream.stream_topic_metrics_records_produced |
Kafka Streams 싱크 프로세서 노드가 누적 생성한 record 수 | cloud_provider, cluster_name, host, processor_node_id, thread_id, topic |
count |
Kafka Connect 지표¶
kafka_connect 지표 세트에는 8개의 권장 지표 컨텍스트가 포함됩니다.
| MetricName | MetricDescribe | Dimensions | Unit |
|---|---|---|---|
kafka_connect.worker_connector_count |
Kafka Connect Worker에서 현재 실행 중인 Connector 수 | cloud_provider, cluster_name, host |
count |
kafka_connect.worker_connector_startup_attempts |
Kafka Connect Worker가 Connector 시작을 시도한 누적 횟수 | cloud_provider, cluster_name, host |
count |
kafka_connect.worker_connector_startup_failure_percentage |
Kafka Connect Worker의 Connector 시작 실패 비율 | cloud_provider, cluster_name, host |
percent |
kafka_connect.worker_rebalance_completed_rebalances |
Kafka Connect Worker가 완료한 rebalance 누적 횟수 | cloud_provider, cluster_name, host |
count |
kafka_connect.worker_rebalance_time_since_last_rebalance_ms |
Kafka Connect Worker의 마지막 rebalance 완료 이후 경과 시간 | cloud_provider, cluster_name, host |
ms |
kafka_connect.worker_task_startup_attempts |
Kafka Connect Worker가 Task 시작을 시도한 누적 횟수 | cloud_provider, cluster_name, host |
count |
kafka_connect.worker_task_startup_failure |
Kafka Connect Worker의 Task 시작 실패 누적 횟수 | cloud_provider, cluster_name, host |
count |
kafka_connect.worker_task_startup_failure_percentage |
Kafka Connect Worker의 Task 시작 실패 비율 | cloud_provider, cluster_name, host |
percent |