StatsD Emitter
StatsD Emitter
statsd-emitter 확장은 Druid 메트릭을 StatsD 서버로 보내요. JSON 매핑 파일로 메트릭의 StatsD 타입과 dimension을 정의할 수 있고, DogStatsD 지원도 포함해요.
출처: 문서
본문
이 Apache Druid 확장을 사용하려면 extensions load list에 statsd-emitter를 포함해 주세요.
statsd-emitter
Introduction
이 확장은 druid 메트릭을 StatsD 서버로 보내요. (https://github.com/etsy/statsd) (https://github.com/armon/statsite)
Configuration
StatsD emitter의 모든 구성 파라미터는 druid.emitter.statsd 아래에 있어요.
| 속성 | 설명 | 필수 | 기본값 |
|---|---|---|---|
druid.emitter.statsd.hostname |
StatsD 서버의 hostname. | yes | none |
druid.emitter.statsd.port |
StatsD 서버의 port. | yes | none |
druid.emitter.statsd.prefix |
선택적 메트릭 이름 접두사. | no | "" |
druid.emitter.statsd.separator |
메트릭 이름 구분자. | no | . |
druid.emitter.statsd.includeHost |
hostname을 메트릭 이름의 일부로 포함할지 여부 플래그. | no | false |
druid.emitter.statsd.dimensionMapPath |
모든 Druid 메트릭에 대해 StatsD 타입과 원하는 dimension을 정의하는 JSON 파일. | no | 기본 매핑 제공. 아래 참고. |
druid.emitter.statsd.blankHolder |
StatsD가 공백 문자가 있는 경로를 지원하지 않으므로 공백 문자 대체. | no | "-" |
druid.emitter.statsd.queueSize |
메시지 큐의 처리되지 않은 최대 메시지 수. | no | StatsD Client 기본값(4096) |
druid.emitter.statsd.poolSize |
네트워크 패킷 버퍼 풀 크기. | no | StatsD Client 기본값(512) |
druid.emitter.statsd.processorWorkers |
제출을 위해 버퍼를 조립하는 processor worker 스레드 수. | no | StatsD Client 기본값(1) |
druid.emitter.statsd.senderWorkers |
소켓에 버퍼를 제출하는 sender worker 스레드 수. | no | StatsD Client 기본값(1) |
druid.emitter.statsd.dogstatsd |
DogStatsD 지원을 활성화할지 여부 플래그. dimension이 메트릭 이름의 일부가 아니라 tag로 포함되게 해요. convertRange 필드는 무시돼요. |
no | false |
druid.emitter.statsd.dogstatsdConstantTags |
druid.emitter.statsd.dogstatsd가 true면, String JSON 목록의 tag들이 모든 이벤트와 함께 전송돼요. |
no | [] |
druid.emitter.statsd.dogstatsdServiceAsTag |
druid.emitter.statsd.dogstatsd와 druid.emitter.statsd.dogstatsdServiceAsTag가 모두 true면, druid 서비스(예: druid/broker, druid/coordinator 등)가 메트릭 이름(예: druid.broker.query.time)에 포함되는 대신 tag(예: druid_service:druid/broker)로 보고되고, druid가 메트릭 접두사(예: druid.query.time)로 사용돼요. |
no | false |
druid.emitter.statsd.dogstatsdEvents |
druid.emitter.statsd.dogstatsd와 druid.emitter.statsd.dogstatsdEvents가 모두 true면, Alert 이벤트가 DogStatsD로 보고돼요. |
no | false |
Druid to StatsD Event Converter
StatsD로 보내는 각 메트릭은 타입([timer, counter, guage] 중 하나)을 지정해야 해요. StatsD Emitter는 이 매핑이 JSON 파일로 제공되기를 기대해요. 추가로 이 매핑은 각 메트릭에 포함할 dimension을 지정해요. StatsD는 메트릭 값이 정수이기를 기대해요. Druid는 0에서 1 사이의 값을 가진 메트릭도 일부 내보내요. 이 메트릭들을 수용하기 위해 0에서 100 범위로 변환해요. 이 변환은 JSON 매핑 파일에서 선택적 convertRange 필드를 true로 설정하면 활성화돼요. 사용자가 자신의 JSON 파일을 지정하지 않으면 기본 매핑이 사용돼요. 모든 메트릭이 매핑되어야 해요. 매핑되지 않은 메트릭은 오류를 로그로 기록해요.
StatsD 메트릭 경로는 다음 스키마로 구성돼요.
<druid metric name> : { "dimensions" : <dimension list>, "type" : <StatsD type>, "convertRange" : true/false}
예:
query/time" : { "dimensions" : ["dataSource", "type"], "type" : "timer"}
서로 다른 dimension을 가진 여러 서비스에서 내보내진 메트릭의 경우 메트릭 이름에 서비스 이름이 접두사로 붙어요.
예:
"druid/coordinator-segment/count" : { "dimensions" : ["dataSource"], "type" : "gauge" }, "druid/historical-segment/count" : { "dimensions" : ["dataSource", "tier", "priority"], "type" : "gauge" }
대부분의 사용 사례에서는 기본 매핑으로 충분해요.
더 알아보기 (Learn more)
- 다른 메트릭 emitter로 Prometheus Emitter, Graphite Emitter, InfluxDB Emitter도 살펴보세요.
- Druid Metrics 문서에서 Druid가 내보내는 메트릭 목록을 확인해 보세요.