StatsD 는 metric value 를 모아서 Graphite 의 Carbon 컴포넌트로 데이터를 전송하는 데몬이다.
StatsD 서버는 StatsD 클라이언트로에서 생성된 metric value 를
기본적으로 UDP 를 통해 데이터를 수신한다. ( TCP 방식도 지원한다. )
Datagram
statsd 서버가 수집하는 데이터는 다음과 같은 형태를 가진다.
<bucket>:<value>|type|@<sampling rate>
bucket : key 에 해당하는 데이터로 위의 첫번째 예에서 MyService.Api.Invocation 에 해당한다.
value : 말그대로 해당 key 에 대응하는 value 값이다.
type : 데이터 value 의 종류를 의미한다. 아래 정리해 놓은 내용을 참조하자.
sampling rate : 0.1 이라고 넣으면 데이터의 10% 만 얻어온다.
Data Types
그리고 Graphite 에서는 버퍼에 저장된지 1분이 된 데이터만을 저장하므로,
Graphite 에 나타나는 데이터는 보통 1분이 지난 데이터라고 할 수 있다.
Counters (c)
Counters 은 가장 기본적인 데이터 타입이다.
지정된 샘플링 시간동안 발생한 지정된 이벤트의 갯수를 나타내는데 사용된다.
보통 1분을 기준으로 하며 1분동안 함수가 몇번 호출 되었는지 등을 확인할 때 사용되는 경우가 많다.
MyService.Api.Invocation:10|c
이라고 입력하면
MyService.Api.Invocation
키에 현재 설정된 값이 100 이라고 하면 10 만큼 값을 증가시켜 110 을 만든다.
MyService.Api.Invocation:-10|c
음수로 입력하면 현재 값에서 지정된 값 만큼을 제외하게 되어 110 에서 100 으로 감소하게 된다.
|
Timer (ms)
타이머는 어떤 이벤트가 완료까지 걸린 시간을 추적하기 위한 것으로 다음과 같이 표기한다.
MyService.Api.InvocationTime:120|ms
|
Gauge (g)
말 그대로 어떤 측정값을 확인하기 위한 데이터 유형이다.
+, - 부호와 같이 Value 를 설정하면 증가 / 감소를 말한다.
MyService.Product.AveragePrice:10|g
평균 가격을 10 으로 설정함
MyService.Product.AveragePrice:+2|g
평균 가격을 12 로 올림
|
Sets (s)
C++ 의 Set 과 같다. 중복 Value 를 허용하지 않되 해당 키에 여러가지 Value 을 입력할 수 있으며
Set 은 이 중복되지 않은 Value 의 Count 를 계산한다.
identity.users:Jack|s
identity.users:John|s
identity.users 의 값은 2 가 된다.
|
Sampling Rate
총 데이터 량에서 Sampling Rate 만큼만 Graphite 로 보낸다.
identity.users:Jack|s@0.1 입력 데이터의 10 % 만 Graphite 로 보낸다. |
Frequencies / Retentions
/etc/carbon/storage-schemas.conf 파일에 보면
StatsD 에서 오는 data points 들에 대한 필터링을 수행할 수 있다.
즉 Graphite 의 Carbon 컴포넌트가 모든 데이터를 Graphite 에 연결된 DB 에 저장하지 않으며
특정 주기마다 그리고 특정 패턴만 저장하게 바꾸는 것이다.
얼마나 자주 데이터를 캡쳐 할지와 얼마나 해당 데이터를 지우지 않고 유지할지를 설정해야 한다.
[default]
pattern=.*
retentions=1s:1d,30s:7d,1m:3y
1초마다 캡쳐하는 데이터는 1일간 유지하고, 30 초마다 캡쳐하는 데이터는 7일간 유지, 1분마다 는 1년간 유지
[logins]
pattern=^login
retentions=1m:1y
login 의 경우는 위의 룰을 따르지 않고 1분마다 캡쳐하고 1년간 데이터를 유지
|
'Monitoring > Grapana+Graphite+Statd' 카테고리의 다른 글
06. Install Grafana (0) | 2020.01.22 |
---|---|
05. Install StatsD (0) | 2020.01.22 |
04. Install Graphite (0) | 2020.01.22 |
02. Graphite (0) | 2020.01.22 |
01. Grafana (0) | 2020.01.22 |