InfluxDB Line Protocol 입력 포맷

InfluxDB Line Protocol 입력 포맷

druid-influx-extensions 확장은 Druid가 InfluxDB Line Protocol을 파싱해서 수집할 수 있게 해줘요. InfluxDB Line Protocol은 널리 쓰이는 텍스트 기반 타임시리즈 메트릭 직렬화 포맷이에요.

출처: 문서

본문

이 Apache Druid 확장을 사용하려면 extensions load list에 druid-influx-extensions를 포함해 주세요.

druid-influx-extensions

이 확장은 Druid가 InfluxDB Line Protocol(널리 쓰이는 텍스트 기반 타임시리즈 메트릭 직렬화 포맷)을 파싱할 수 있게 해줘요.

Line Protocol

전형적인 라인은 이렇게 생겼어요.

cpu,application=dbhost=prdb123,region=us-east-1 usage_idle=99.24,usage_user=0.55 1520722030000000000

이 라인은 네 부분을 담고 있어요.

  • measurement: 표현되는 측정값의 이름을 나타내는 String (예: cpu, network, web_requests).
  • tags: 0개 이상의 key-value 쌍 (즉 dimension).
  • measurements: 하나 이상의 key-value 쌍. 값은 숫자, boolean, 또는 String일 수 있어요.
  • timestamp: Unix epoch 이후의 나노초 (reader는 이를 밀리초로 잘라내요).

입력 포맷은 이 필드들을 map으로 추출해요. measurement에는 measurement 키를, timestamp에는 __ts 키를 부여해요. tag와 measurement 키는 그대로 복사되므로, 사용자는 이름 충돌을 피하도록 주의해야 해요. 어떤 필드를 dimension로 취급하고 어떤 필드를 metric으로 취급할지는 수집 스펙이 결정해요 (일반적으로 tags는 dimension에, measurements는 metric에 대응돼요).

입력 포맷은 다음과 같이 구성돼요.

"inputFormat": {
  "type": "influx",
  "whitelistMeasurements": [
    "cpu"
  ]
}
필드 타입 설명 필수
type String 반드시 influx여야 해요. yes
whitelistMeasurements String 목록 값이 제공되면, 목록의 문자열 중 하나와 일치하지 않는 measurement는 무시돼요. no

influx 입력 포맷을 사용할 때 timestamp spec은 column을 __ts로, format을 millis로 구성해야 해요.

"timestampSpec": {
  "column": "__ts",
  "format": "millis"
}

더 알아보기 (Learn more)

  • InfluxDB Emitter에서 Druid 메트릭을 InfluxDB로 보내는 쪽도 살펴볼 수 있어요.
  • Ingestion Spec 문서에서 inputFormat과 timestampSpec 구성 전반을 참고해 보세요.