graphite and grafana (draft)

graphite

Official Docker image for Graphite (https://github.com/graphite-project/docker-graphite-statsd) 의 경우 아직 이해 안되는 것이 있어서 직접 설치하여 사용하는 것으로 테스팅을 함.

https://graphiteapp.org/#gettingStarted 문서를 보고 따라 해봄.

Quick Start Guide: Synthesize

https://graphiteapp.org/quick-start-guides/synthesize.html 에서 vagrant  로 설치한다. 설치과정은 install script  를 살펴보면 된다.

프로그램에서 사용하는 port 는 vagrant 파일을 봐야 한다. 일단 몇가지만 적어둔다.

2003 carbon receiver - plaintext

2004 carbon receiver - pickle

8125 statsd

여기에서 설치하는 웹서버는 guest 443, host 8443 으로 설정이 되어 있다. grafana는 guest 3000에 설치가 되는데 host는 3030 으로 설정이 되어 있다.

https://127.0.0.1:8443/


설치되는  각종 프로그램의 비밀번호 등은 https://github.com/obfuscurity/synthesize 를 보면 된다. 

Quick Start Guide: Getting Metrics into Graphite

이제 테스팅용 metric 집어 넣기.

https://graphiteapp.org/quick-start-guides/feeding-metrics.html

random하게 여러 개 집어 넣도록 하는 것이 편리하다.

$ echo "foo.bar 1 `date +%s`" | nc localhost 2003
$ while true; do echo  "foo.bar $((RANDOM % 100)) `date +%s`" | nc localhost 2003 ; done

Graphite Message Format 은 다음 문서를 보면 "metric_path value timestamp\n" 로 되어 있다.

http://graphite.readthedocs.io/en/latest/feeding-carbon.html#step-3-understanding-the-graphite-message-format


StatsD를 이용하는 예제도 나와 있다.StatsD는 카운터, 시간과 같은 통계 정보를 받고 UDP 나 TCP를 통하여 graphite 와 같은 여러 backend 서비스에 합계 정보등을 보낼 수 있다. 

collectd 를 이용하여 시스테의 각종 metric 을 수집할 수 있다.

Quick Start Guide: Getting Metrics out of Graphite

https://graphiteapp.org/quick-start-guides/graphing-metrics.html

graphite 웹접속해서 몇가지 간단한 예제를 보여준다.


grafana  접속을 해서 테스팅을 해보기.

http://127.0.0.1:3030/


vagrant 에서 설치시 data source 는 graphite 를 지정하여 테스팅을 할 수 있다. graphite 와 연동을 한 경우 아래 문서를 참고.

http://docs.grafana.org/features/datasources/graphite/

graphite 에서 지원하는 functions 를 이용할 경우 graphite  문서를 참고해야 하는 것 같다.

https://graphite.readthedocs.io/en/latest/functions.html

아래는 두개의 metric을 sumSeries를 이용하여 합치는 경우임.

collectd.graphite.memory.memory-free

collectd.graphite.memory.memory-buffered

sumSeries(#A,#B)

post install tasks

https://graphite.readthedocs.io/en/latest/install.html#post-install-tasks 문서의 post install tasks 링크를 참고. 

처음에는 storage-schemas.conf 파일만 조정을 해서 사용을 하면 될 것 같다. metric 저장 주기를 조정하는 파일이다.

https://graphite.readthedocs.io/en/latest/config-carbon.html : carbon 설정하기 내용. storage-schemas.conf 파일은 필요에 따라 변경해서 사용을 함.

https://graphite.readthedocs.io/en/latest/feeding-carbon.html  : graphite 에 데이터를 보내는 방식 설명. 네이밍 hierarchy, data retention 설정, 메시지 포맷 등에 대해 설명을 하고 있음.

grafana

위에서 일부 설명했음.

grafana에서 제공하는 테스팅 사이트가 있다. 여기서 샘플들 살펴보면 될 듯 하다.

http://play.grafana.org/dashboard/db/grafana-play-home?orgId=1