Kafka Emitter
Kafka Emitter
kafka-emitter 확장은 Druid 메트릭을 JSON 포맷으로 Apache Kafka에 직접 보내요. 이미 Kafka를 사용 중이라면 다양한 도구나 UI로 Druid 클러스터 상태를 모니터링하기 쉽게 통합할 수 있어요.
출처: 문서
본문
이 Apache Druid 확장을 사용하려면 extensions load list에 kafka-emitter를 포함해 주세요.
kafka-emitter
Introduction
이 확장은 Apache Kafka에 Druid 메트릭을 JSON 포맷으로 직접 보내요. 현재 Kafka는 훌륭한 생태계뿐 아니라 바로 사용 가능한 consumer API도 갖추고 있어요. 그래서 이미 Kafka를 사용하고 있다면, 이 확장으로 Druid 클러스터 상태를 모니터링하는 다양한 도구나 UI를 쉽게 통합할 수 있어요.
Configuration
Kafka emitter의 모든 구성 파라미터는 druid.emitter.kafka 아래에 있어요.
| 속성 | 설명 | 필수 | 기본값 |
|---|---|---|---|
druid.emitter.kafka.bootstrap.servers |
쉼표로 구분된 Kafka broker. ([hostname:port],[hostname:port]...) |
yes | none |
druid.emitter.kafka.event.types |
쉼표로 구분된 이벤트 타입. 지원되는 타입은 alerts, metrics, requests, segment_metadata. |
no | ["metrics", "alerts"] |
druid.emitter.kafka.metric.topic |
emitter가 서비스 메트릭을 보낼 Kafka topic 이름. event.types에 metrics가 포함되면 이 필드는 비면 안 돼요. |
no | none |
druid.emitter.kafka.alert.topic |
emitter가 알림을 보낼 Kafka topic 이름. event.types에 alerts가 포함되면 이 필드는 비면 안 돼요. |
no | none |
druid.emitter.kafka.request.topic |
emitter가 request log를 보낼 Kafka topic 이름. event.types에 requests가 포함되면 이 필드는 비면 안 돼요. |
no | none |
druid.emitter.kafka.segmentMetadata.topic |
emitter가 segment metadata를 보낼 Kafka topic 이름. event.types에 segment_metadata가 포함되면 이 필드는 비면 안 돼요. |
no | none |
druid.emitter.kafka.producer.config |
Kafka producer에 추가 속성을 설정하는 JSON 구성. | no | none |
druid.emitter.kafka.clusterName |
Druid 클러스터 이름을 지정하는 선택 값. 모니터링 환경에서 그룹을 만드는 데 도움이 돼요. | no | none |
druid.emitter.kafka.extra.dimensions |
내보낸 이벤트에 대한 추가 string dimension map을 지정하는 선택 JSON 구성. 모니터링 환경에서 그룹을 만드는 데 도움이 돼요. | no | none |
druid.emitter.kafka.producer.hiddenProperties |
username, password 같은 민감한 Kafka producer 속성을 지정하는 JSON 구성. 이 속성은 DynamicConfigProvider 구현을 허용해요. | no | none |
druid.emitter.kafka.producer.shutdownTimeout |
Kafka producer가 종료 전에 대기 중인 요청이 끝나기를 기다리는 시간(밀리초). | no | Long.MAX_VALUE |
Example
druid.emitter.kafka.bootstrap.servers=hostname1:9092,hostname2:9092
druid.emitter.kafka.event.types=["metrics", "alerts", "requests", "segment_metadata"]
druid.emitter.kafka.metric.topic=druid-metric
druid.emitter.kafka.alert.topic=druid-alert
druid.emitter.kafka.request.topic=druid-request-logs
druid.emitter.kafka.segmentMetadata.topic=druid-segment-metadata
druid.emitter.kafka.producer.config={"max.block.ms":10000}
druid.emitter.kafka.extra.dimensions={"region":"us-east-1","environment":"preProd"}
druid.emitter.kafka.producer.hiddenProperties={"config":{"sasl.jaas.config": "org.apache.kafka.common.security.plain.PlainLoginModule required username=\"KV...NI\" password=\"gA3...n6a/\";"}}
더 알아보기 (Learn more)
- 다른 메트릭 emitter로 Prometheus Emitter, StatsD Emitter, Graphite Emitter도 살펴보세요.
- Druid Metrics 문서에서 Druid가 내보내는 메트릭 목록을 확인해 보세요.