일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 주키퍼
- 스위프트
- Hyperledger fabric gossip protocol
- 파이썬 머신러닝
- 그라파나
- Golang
- 안드로이드 웹뷰
- 파이썬 강좌
- CORDA
- Play2
- hyperledger fabric
- 파이썬
- 이더리움
- Play2 로 웹 개발
- 하이퍼레저 패브릭
- 하이브리드앱
- Akka
- play2 강좌
- Adapter 패턴
- Actor
- 플레이프레임워크
- 엔터프라이즈 블록체인
- 스칼라 동시성
- 파이썬 동시성
- 파이썬 데이터분석
- 스칼라 강좌
- 스칼라
- 블록체인
- akka 강좌
- play 강좌
- Today
- Total
HAMA 블로그
[OpenTSDB] 어떻게 OpenTSDB 는 동작하나? 본문
OpenTSDB 는 타임 시리즈 데몬(Time Series Daemon (TSD)) 들로 구성된다.(몇몇 커맨드라인 유틸리티셋 포함)
상태공유없이 돌아가기때문에 여러가지 일들을 하기위해 여러 TSD 들에게 일거리를 던져주는데 아무 문제없다.
쓰기
OpenTSDB 를 사용하는 첫번째 단계는 TSDs 에 타임시리즈 데이터를 보내는것이다. 여러가지 툴(tools )들이 다양한 소스로부터 데이터를 꺼내서 OpenTSDB 에 넣기위해 존재한다. 만약 당신이 필요한 툴을 찾지 못한다면 직접 스크립트를 짤 필요가 있다. (e.g. by reading interesting metrics from /proc
on Linux, collecting counters from your network gear via SNMP, or other interesting data from your applications, via JMX for instance for Java applications) 그리고 TSDs 중 하나에 데이터 포인트들을 주기적으로 푸시하면 된다.
StumbleUpon 는 tcollector
라 불리는 파이썬 프레임워크를 썼는데(wrote) , Linux 2.6, Apache's HTTPd, MySQL, HBase, memcached, Varnish 등으로 부터 수천가지의 계측데이터를 모으기위해 사용되었다.
이런 적은 영향(low-impact)을 주는 프레임워크는 몇가지 쓸만한 컬렉터들을 포함하고, 그 커뮤니티는 꾸준히 그 이상의 기능을 제공한다. OpenTSDB 와 상호작용하는 프레임워크들은 Collectd / Statsd / the Coda Hale metrics emitter 를 지원하며 포함한다. OpenTSDB 에서 , 타임시리즈 데이타 포인트는 다음과 같이 구성된다:
- 계측(Metric) 이름.
- UNIX 타임스탬프 (seconds or millisecinds since Epoch).
- 값 (64 bit integer or single-precision floating point value).
- 태그들의 셋 (key-value 쌍 ) 포인트에 해당하는 타임시리즈를 나타낸다.
태그들은 다른 소스들 또한 연계된 엔터티들로 부터 유사한 데이터 포인터들을 구분하기위해 사용된다. 그래서 당신은 쉽게 그들을 개별적으로 또는 그룹으로 나타낼수 있다. 태그는 머신의 이름을 가진 주석된 데이터 포인트들로 구성된다. (머신이 포함된 pool 또는 클러스터의 이름도~) 이것은 당신이 서버의 논리적 풀의 집약상태를 보여주는 데쉬보드 뿐만아니라 추가적으로 서버당 당신의 서비스의 상태를 나타내는 데쉬보드를 쉽게 만들수있게한다.
mysql.bytes_sent 1287333217 6604859181710 schema=foo host=db1
mysql.bytes_received 1287333232 327812421706 schema=foo host=db1
mysql.bytes_sent 1287333232 6604901075387 schema=foo host=db1
mysql.bytes_received 1287333321 340899533915 schema=foo host=db2
mysql.bytes_sent 1287333321 5506469130707 schema=foo host=db2
이 예는 4개의 다른 타임 시리즈에 속한 6개의 데이터포인트를 보여준다. 각각의 계측과 태그의 컴비네이션들은 다른 타임 시리즈를 만들어낸다.
4개의 타임시리즈 모두는 2개의 계측(metrics) 은mysql.bytes_received
or mysql.bytes_sent
중 하나이다.
데이터 포인트는 최소한 하나의 태그를 가져야하고 계측에 대한 매 타임 시리즈들은 동일한 숫자의 태그(역주: 위의 예는 2개) 를 가져야한다. 데이터 포인트당 6~7개 이상의 태그를 갖는건 추천하지 않는다. 새로운 데이터 포인트와 연계된 비용이 포인트 넘어 태그의 숫자에 지배되기 때문이다.
위의 예의 태그를 가지고서 쉽게 호스트 또는 스키마당 MySQL 의 네트워크 액티비티를 보여주는 그래프나 데쉬보드를 생성할수있을것이다. OpenTSDB 2.0 은 계측의 질과 메타데이터를 추적하는 데이터 포인트들과 함께 non-numeric 주석을 저장할수있게됬다.
읽기
타임시리즈 데이터는 라인 그래프로 보통 그려질수있다. 그래서 OpenTSDB 는 그래프를 생성기위해 하나 혹은 그 이상의 계측과 태그를 선택하는 빌트인 심플 유저인터페이스를 제공한다.
HTTP API 는 monitoring frameworks / dashboards / statistics packages or automation tools 같은 외부 시스템들과 묶여서 OpenTSDB 에서 활용된다. 관련된 툴들을 보기위해 resources 페이지로 가자.
'오픈소스, 미들웨어' 카테고리의 다른 글
RabbitMQ 사용패턴들 (0) | 2015.09.04 |
---|---|
MQTT 와 모스키토(Mosquitto) 란 무엇인가? (0) | 2015.09.03 |
OSGi 는 어떻게 내 삶을 변화시켰나 (번역) (0) | 2015.07.17 |
초보자를 위한 JNDI (0) | 2015.07.16 |
쓰리프트 (Apache Thrift) 의 모든것 (1) - (번역) (0) | 2015.07.08 |