일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Rebalance
- OFFSET
- API문서
- tsdb
- ProjectLoom
- webflux
- Vmalert
- Reactive
- raft
- Mirror
- Zookeeper
- spring
- springboot
- swagger
- NoClassDefFoundError
- consumer
- ExecutableJar
- JDK
- kafka
- broker
- OpenJDK
- VictoriaMetrics
- restdocs
- JVM
- Vmagent
- Brooklin
- 비동기
- java
- Reassign
- Today
- Total
거북이 developer
[VictoriaMetrics] Metric 수집(Direct Push) 본문
InfluxDB Line Protocol
기본적으로 VictoriaMetrics 를 실행하면 8428 포트로 운영이 되고, 해당 포트에 InfluxDB Line Protocol 형식으로 data 요청이 가능하다.
만약 InfluxDB Line Protocol 을 받을 포트를 변경하고 싶다면, -influxListenAddr
옵션을 통해 변경할 수 있다.
/path/to/victoria-metrics-prod -influxListenAddr=:8428
VictoriaMetrics 는 InfluxDB Data 를 받으면 이를 Prometheus 데이터 포인트로 변환을 한다.
아래와 같은 InfluxDB Data 를 보낸다고 가정하면
foo,tag1=value1,tag2=value2 field1=12,field2=40
VictoriaMetrics 에는 아래의 형태로 변환이 된다.
foo_field1{tag1="value1", tag2="value2"} 12
foo_field2{tag1="value1", tag2="value2"} 40
HTTP Protocol 통신을 통해 InfluxDB Data 를 전송할 수 있다.
요청시 '\n'(개행 문자라고도 함)으로 구분된 임의의 수의 행을 보낼 수 있다.
curl -d 'measurement,tag1=value1,tag2=value2 field1=123,field2=1.23' -X POST 'http://localhost:8428/write'
데이터가 전송된 이후에, /api/v1/export을 통해 확인할 수도 있다.
curl -G 'http://localhost:8428/api/v1/export' -d 'match={__name__=~"measurement_.*"}'
{"metric":{"__name__":"measurement_field1","tag1":"value1","tag2":"value2"},"values":[123],"timestamps":[1560272508147]}
{"metric":{"__name__":"measurement_field2","tag1":"value1","tag2":"value2"},"values":[1.23],"timestamps":[1560272508147]}
InfluxDB 라인 프로토콜은 기본적으로 나노초 단위의 타임스탬프를 정의하지만, VictoriaMetrics는 밀리초 단위로 저장한다.
extra_label=name=value 쿼리 파라미터를 전달하여 작성된 모든 시계열에 레이블을 추가할 수 있다. 예를 들어 수집된 모든 측정항목에 {foo="bar"} 레이블을 추가하고자 한다면, /write?extra_label=foo=bar 로 요청한다.
Reference: How to send data from influxdb-compatible agents such as telegraf
Graphite
VictoriaMetrics 실행 시 graphite metric을 수집할 포트를 정의한다.
/path/to/victoria-metrics-prod -graphiteListenAddr=:2003
메트릭을 graphite 형식에 맞추어 전송한다. 여러 메트릭이 필요한 경우, \n으로 개행한다. timestamp가 없는 경우, 현재 시간이 자동으로 삽입된다.
echo "foo.bar.baz;tag1=value1;tag2=value2 123 `date +%s`" | nc -N localhost 2003
데이터가 전송된 이후에, /api/v1/export을 통해 확인할 수도 있다.
curl -G 'http://localhost:8428/api/v1/export' -d 'match=foo.bar.baz'
{"metric":{"__name__":"foo.bar.baz","tag1":"value1","tag2":"value2"},"values":[123],"timestamps":[1560277406000]}
Reference: How to send data from Graphite-compatible agents such as StatsD
OpenTSDB 호환 방식(OpenTSDB Agent 호환)
openTSDB metric을 수집할 HTTP포트를 열어준다.
/path/to/victoria-metrics-prod -opentsdbListenAddr=:4242
OpenTSDB 호환 에이전트에서 지정된 주소로 데이터를 보낸다.
\n(개행 문자라고도 함) 으로 구분된 임의의 수의 행을 한번에 보낼 수 있다.
아래는 nc command 를 사용하여 로컬 VictoriaMetrics에 OpenTSDB 프로토콜로 데이터를 쓰는 예.
echo "put foo.bar.baz `date +%s` 123 tag1=value1 tag2=value2" | nc -N localhost 4242
데이터가 전송된 이후에, /api/v1/export을 통해 확인할 수도 있다.
curl -G 'http://localhost:8428/api/v1/export' -d 'match=foo.bar.baz'
{"metric":{"__name__":"foo.bar.baz","tag1":"value1","tag2":"value2"},"values":[123],"timestamps":[1560277292000]}
OpenTSDB 호환 방식(HTTP 통신)
openTSDB metric을 수집할 HTTP포트를 열어준다.
/path/to/victoria-metrics-prod -opentsdbHTTPListenAddr=:4242
다음 처럼 json 형대의 메트릭을 /api/put으로 전송한다.
curl -H 'Content-Type: application/json' -d '{"metric":"x.y.z","value":45.34,"tags":{"t1":"v1","t2":"v2"}}' http://localhost:4242/api/put
여러 메트릭을 보내는 형식은 다음과 같다.
curl -H 'Content-Type: application/json' -d '[{"metric":"foo","value":45.34},{"metric":"bar","value":43}]' http://localhost:4242/api/put
데이터가 전송된 이후에, /api/v1/export을 통해 확인할 수도 있다.
curl -G 'http://localhost:8428/api/v1/export' -d 'match[]=x.y.z' -d 'match[]=foo' -d 'match[]=bar'
{"metric":{"__name__":"foo"},"values":[45.34],"timestamps":[1566464846000]}
{"metric":{"__name__":"bar"},"values":[43],"timestamps":[1566464846000]}
{"metric":{"__name__":"x.y.z","t1":"v1","t2":"v2"},"values":[45.34],"timestamps":[1566464763000]}
'Database' 카테고리의 다른 글
[VictoriaMetrics] Overview (0) | 2022.03.16 |
---|---|
[VictoriaMetrics] 설치 (0) | 2022.03.14 |