[关闭]
@awsekfozc 2016-01-08T16:11:01.000000Z 字数 3000 阅读 4182

OpenTSDB介绍

OpenTSDB
参考来源:
http://www.searchtb.com/2012/07/opentsdb-monitoring-system.html
http://opentsdb.net/docs/build/html/index.html
http://www.ttlsa.com/opentsdb/opentsdb-setup/
http://blog.csdn.net/bluishglc/article/details/31052749
http://www.jianshu.com/p/0bafd0168647

1)简介

OpenTSDB是基于HBase存储时间序列数据的一个开源数据库,确切地说,它只是一个HBase的应用。主要用途,就是做监控系统;譬如收集大规模集群(包括网络设备、操作系统、应用程序、环境状态)的监控数据并进行存储,查询。
opentsdb极大的方便了运维人员,可以动态的增加metrics。可以灵活支持任何语言的收集器。因此使用它降低了开发和维护成本。

2)架构

QQ截图20160108214215.png-147.9kB

3)Hbase中存储时间序列

场景

譬如假设我们采集1个服务器(hostname=qatest)的CPU使用率,发现该服务器在21:00的时候,CPU使用率达到99%
下面结合例子看看OpenTSDB存储的一些核心概念

- Metric:即平时我们所说的监控项。譬如上面的CPU使用率
- Tags:就是一些标签,在OpenTSDB里面,Tags由tagk和tagv组成,即tagk=takv。标签是用来描述Metric的,譬如上面为了标记是服务器A的CpuUsage,tags可为hostname=qatest
- Value:一个Value表示一个metric的实际数值,譬如上面的99%
- Timestamp:即时间戳,用来描述Value是什么时候的;譬如上面的21:00
- Data Point:即某个Metric在某个时间点的数值。

Data Point包括以下部分:Metric、Tags、Value、Timestamp。上面描述的服务器在21:00时候的cpu使用率,就是1个DataPoint保存到OpenTSDB的,就是无数个DataPoint。

要素

我们先创建一个Metric:cpu-zc-use。用来收集cpu使用情况的一个指标。

  1. $ ./build/tsdb mkmetric cpu-zc-use
  2. ##插入一条数据
  3. cpu-zc-use 1451084030437 20.3 host=foo type=user

如果我们从不同的机器和用户下收集了大量的cpu信息,如果没有对一条信息进行一定地标识,我们是无法区分出哪些数据来自哪台机器的哪个用户,所以我们还需要建立一些“标签”(Tag)来标识一条数据。严格地说,指标和标签之间并没有必然的从属关系,就像两个不同的指标的数据可能都有指示其来自哪台主机的host标签一样,但是有一点是确定的,即:对于一条数据来说,应该至少含有一个指标和一个标签,这样的数据才是有意义的,因此,在OpenTSDB的表设计上,就把“指标”(metrics)和“标签”(Tag)统一放在了tsdb-uid表中存储,格式为:RowKey(自增ID,3字节数组):name:metrics,name:tagk,name:tagv,同时对它们之间的反向关联关系也作了展开存储。

tsdb-uid表:这里其实保存的就是一些metric,tagk,tagv的一些映射关系。
QQ截图20160108222750.png-26.9kB

  1. 第一条记录:rowkey为\x00,含3个字段:metrics,tagk,tagv, 其值分别是已经添加的所有指标、标签名和标签值的数量。这一条数据是系统生成和维护的。这里有两个metrics:cpu和mem,两个key:host和type,两个value:foo和user,所以 rowkey为\x00的三个数据的value都是2

  2. 一个UID是针对一种指标+一种标签名+一种标签值的组合分配的,即:一种指标+一种标签名+一种标签值 = 一个UID,也就是说:一个UID对应的一种指标+一种标签名+一种标签值的组合才是可以单独抽取出来时行统计的最小单位!

tsdb表:一下是cpu-zc-use的两个datapoint
QQ截图20160108223400.png-10.1kB

rowkey如下图所示
QQ截图20160108224605.png-60.6kB


在此输入正文

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注