graphite
按照graphite的官方介绍,graphite只干两件事:
- 存储数字型的时序数据
- 后台渲染为这些数据渲染图
不干的事情:不负责收集数据,只负责收到数据并存储起来;
接受数据的方法为:1
<metric path> <metric value> <metric timestamp>
1 | PORT=2003 |
statsD
statsD是一个运行在Node.js平台的聚合器,主要功能是对收到的时序数据按照设定的时间间隔进行聚合,然后将聚合后的数据发送到类似graphite一类的数据库。
主要概念包括:
- buckets:类似metric name
- value:需要进行聚合的值
- flush:刷新的时间间隔
写入数据的协议为1
<metricname>:<value>|<type>
其中type包括有:
- counting计数值
1
gorets:1|c
简单的counter,每次都会+1到gorets上,每次flush都会重置为0;
在发送到后端存储的时候不仅会发送counter,还会发送rate。
- sampling采样值
1
gorets:1|c|@0.1
在每个flush周期发送1/0.1次数据到后端存储,等于每秒采样一次;
- timing
1
glork:320|ms|@0.1
timing类型的数据会对发送过来的数据计算所有数据的pct90,pct99,平均值,标准差,总和,最大值和最小值,然后发送到后端存储。
gauges原始值
1
gaugor:333|g
sets
1
uniques:765|s
Statsite
Statsite是一个metrics的聚合的服务,是基于StatsD的;
其中Statsite最重要的一个功能是,它支持多个sink:
- Graphite
- InfluxDB
- Ganglia
- Librato
- CloudWatch
- OpenTSDB
- HTTP
也就是说,只需要它支持将metrics聚合后写入多个后端存储。