본문 바로가기

Monitoring/Influxdata(TICK Stack)

Influxdata의 Telegraf란?

Influxdata 카테고리도 오랜만에 쓰는 것 같습니다.


이번 글에선 Influxdata의 components 중에 수집기인 Telegarf에 대해 말해보려고 합니다. config에 대한것은 따로 말하도록 하겠습니다.


Telegraf란?

Teleagraf는 Go 언어로 쓰여진 agent입니다. 주로 수집, 처리, 종합처리, 메트릭에 쓰기위해 사용됩니다. 이 agent의 목표는 작은 메모리를 사용하면서 개발자들이 메트릭을 수집해서 쉽게 지원하는 것을 지향합니다. 로컬 또는 원격의 config까지 반영시킬 수 있습니다. Telegarf는 plugin 방식을 사용하며 4가지 플러그인 컨셉을 가지고 있습니다.


1. Input Plugin : 시스템, 서비스, 써드파티 API로부터 메트릭 수집

2. Processor Plugin : 매트릭 설명, 변환 등을 지원

3. Aggregator Plugin : mean, min, max, quantiles와 같은 다양한 종합 매트릭 지원

4. Output Plugin : 다양한 목적지에 매트릭 저장


더 많은 Processor와 Aggregator plugin이 필요한 경우 해당 page 를 참조하면 됩니다.


좀 더 Flow를 자세히 보자면 아래와 같습니다.


Input과 Out Plugin 사이에 Process와 Aggregate가 자리하게 되며 transform/decorate/filter를 거쳐 mean/quantiles/min,max/count 와 같은 함수를 거치게 됩니다.


여러개의 input을 가질수도 있고 여러개의 output을 가질수도 있습니다. 만약 destination을 저처럼 InfluxDB만 쓰는게 아니라 Graphite와 같은 다른 시계열 Data Engine을 사용할수도 있습니다. 만약 Telegraf를 Collector로 쓴다면 각각 다른 시계열 Data Engine에 데이터를 보내서 성능비교를 할수도 있습니다.


Telegraf v1.7의 Input Plugin 종류 : https://docs.influxdata.com/telegraf/v1.7/plugins/inputs/

Telegraf v1.7의 Output Plugin 종류 : https://docs.influxdata.com/telegraf/v1.7/plugins/outputs/