Ambari Metrics Emitter
Ambari Metrics Emitter
이 Apache Druid 확장을 사용하려면 확장 로드 목록에 ambari-metrics-emitter를 포함하세요.
출처: 문서
본문
소개 (Introduction)
이 확장은 Druid 메트릭을 ambari-metrics carbon 서버로 방출해요. 이벤트는 pickled(즉 배치 처리)된 후 전송돼요. 배치의 크기는 구성할 수 있어요.
설정 (Configuration)
ambari-metrics emitter의 모든 구성 파라미터는 druid.emitter.ambari-metrics 아래에 있어요.
| property | description | required? | default |
|---|---|---|---|
druid.emitter.ambari-metrics.hostname |
ambari-metrics 서버의 hostname | yes | none |
druid.emitter.ambari-metrics.port |
ambari-metrics 서버의 port | yes | none |
druid.emitter.ambari-metrics.protocol |
ambari metrics collector로 메트릭을 보낼 때 사용하는 프로토콜. http/https 중 하나 | no | http |
druid.emitter.ambari-metrics.trustStorePath |
https에 사용할 trustStore 경로 | no | none |
druid.emitter.ambari-metrics.trustStoreType |
https에 사용할 trustStore 타입 | no | none |
druid.emitter.ambari-metrics.trustStoreType |
https에 사용할 trustStore 비밀번호 | no | none |
druid.emitter.ambari-metrics.batchSize |
한 배치로 보낼 이벤트 수 | no | 100 |
druid.emitter.ambari-metrics.eventConverter |
druid 이벤트를 ambari-metrics timeline event로 필터링·변환하는 컨버터(다음 섹션 참고) | yes | none |
druid.emitter.ambari-metrics.flushPeriod |
큐 플러싱 주기(밀리초) | no | 1 minute |
druid.emitter.ambari-metrics.maxQueueSize |
이벤트를 버퍼링하는 큐의 최대 크기 | no | MAX_INT |
druid.emitter.ambari-metrics.alertEmitters |
alert가 전달될 emitter 목록 | no | 빈 목록 (forwarding 없음) |
druid.emitter.ambari-metrics.emitWaitTime |
이벤트를 보내려고 시도하는 대기 시간(밀리초). 그렇지 않으면 emitter가 이벤트를 던져요. | no | 0 |
druid.emitter.ambari-metrics.waitForEventTime |
필요하면 이벤트가 사용 가능해질 때까지 기다리는 시간(밀리초) | no | 1000 (1 sec) |
Druid에서 Ambari Metrics Timeline Event로의 변환
Ambari Metrics Timeline Event Converter는 druid 메트릭 이름과 dimension을 timeline event metricName으로 매핑하는 것을 정의해요.
ambari-metrics 메트릭 경로는 다음 스키마로 구성돼요:
<namespacePrefix>.[<druid service name>].[<druid hostname>].<druid metrics dimensions>.<druid metrics name>
나중에 충돌, 혼란스러운 데이터, 잠재적으로 잘못된 해석을 피하려면 메트릭 이름을 제대로 지정하는 것이 중요해요.
예시 druid.historical.hist-host1:8080.MyDataSourceName.GroupBy.query/time:
druid-> namespace prefixhistorical-> service namehist-host1:8080-> druid hostnameMyDataSourceName-> dimension valueGroupBy-> dimension valuequery/time-> metric name
이벤트 컨버터에는 두 가지 다른 구현이 있어요:
Send-All 컨버터
all이라고 불리는 첫 번째 구현은 모든 druid 서비스 메트릭 이벤트를 보내요.
경로 형태는 <namespacePrefix>.[<druid service name>].[<druid hostname>].<dimensions values ordered by dimension's name>.<metric>예요.
사용자는 <namespacePrefix>.[<druid service name>].[<druid hostname>].을 제어해요.
druid.emitter.ambari-metrics.eventConverter={"type":"all", "namespacePrefix": "druid.test", "appName":"druid"}
White-list 기반 컨버터
whiteList라고 불리는 두 번째 구현은 화이트리스트에 등록된 메트릭과 dimension만 보내요.
all 컨버터와 마찬가지로 사용자는 <namespacePrefix>.[<druid service name>].[<druid hostname>].을 제어해요.
White-list 기반 컨버터에는 ./src/main/resources/defaultWhiteListMap.json의 resources 아래에 다음 기본 white list map이 제공돼요.
사용자는 mapPath라는 속성을 제공해 기본 white list map을 재정의할 수 있어요.
이 속성은 white list map JSON object를 포함한 파일의 경로를 담은 String이에요.
예를 들어 다음 컨버터는 /pathPrefix/fileName.json 파일에서 map을 읽어요.
druid.emitter.ambari-metrics.eventConverter={"type":"whiteList", "namespacePrefix": "druid.test", "ignoreHostname":true, "appName":"druid", "mapPath":"/pathPrefix/fileName.json"}
Druid는 엄청나게 많은 메트릭을 방출하므로 whiteList 컨버터를 사용하는 것을 강력히 권장해요.
더 알아보기 (Learn more)
- Loading extensions — 이 확장을 로드 목록에 포함하는 방법을 알아봐요.
- Metrics — Druid가 방출하는 메트릭 목록을 확인해요.