OpenTSDB的简单入门

OpenTSDB的简单入门
预览:

此文档的定位: 便于 JAVA 程序员快速了解 OpenTSDB,以及利用 OpenTSDB 的 API 进行简单的开发, 至于具体的搭建以及调优之 类不作讨论。结构如下: 一. 是什么?有什么作用 二、结构,怎么干 三. 主要 API 四、在开发中如何运用这些 API 一、opentsdb 是什么 基于 Hbase 的分布式的,可伸缩的时间序列数据库(本质就是一个数据库,通过 TCollector 收集监控对象的各个指标,按时间的序列存入 hbase 中。通过查询 在一段时间内某个指标的参数, 经过处理展示给用户,用户可以看到各个时间点 的指标值和这段时间内的变化,达到监控的目的) 主要用途,就是做监控系统;譬如收集大规模集群(包括网络设备、操作系统、 应用程序)的监控数据并进行存储,查询。 二、OpenTSDB 的结构 Opentsdb 本质上是一个数据库,因此须了解它的存储结构,包括最小的存 储单位以及存储单元等 存储到 OpenTSDB 的数据,是以 metric 为单位的,metric 就是 1 个监控项, 譬如服务器的话,会有 CPU 使用率、内存使用率这些 metric; OpenTSDB 使用 HBase 作为存储,由于有良好的设计,因此对 metric 的数据 存储支持到秒级别; OpenTSDB 支持数据永久存储,即保存的数据不会主动删除;并且原始数据 会一直保存(有些监控系统会将较久之前的数据聚合之后保存) 在了解整个结构之前先学习些基础概念 2.1、OpenTSDB 存储的相关概念 metric:proc.loadavg.1m timestamp:1234567890 value:0.42 tags:host=web42,pool=static DataPoint:即在某个时间点的数值。包括以下: Metric:指标项 Value:一个 Value 表示一个 metric 的实际数值 Timestamp:即时间戳,用来描述 Value 是什么时候的 Tags:标签,由 tagk 和 tagv 组成 tagk=takv 2.2、tsdb 和 tsdb-uid OpenTSDB 使用 Hbase 存储,核心的存储是两张表 ,tsdb 和 tsdb-uid (1) 结构如下 tsdb 1)RowKey 的设计 RowKey 其实和上面的 metric|timestamp|value|host=web42|pool=static 类似; 但是区别是,OpenTSDB 为了节省存储空间,将每个部分都做了映射。 在 OpenTSDB 里面有这样的映射,metric-->3 字节整数、tagk-->3 字节整数、 tagv-->3 字节整数 上图的映射关系为, proc.loadavg.1m-->052、 host-->001、 web42-->028、 pool-->047、 static-->001 2)column 的设计 为了方便后期更进一步的节省空间。OpenTSDB 将一个小时的数据,保存在一行 里面。 所以上面的 timestamp1234567890,会先模一下小时,得出 1234566000,然后得 到的余数为 1890,表示的是它是在这个小时里面的第 1890 秒; 然后将 1890 作为 column name,而 0.42 即为 column value (2)tsdb-uid 保存的就是 tsdb 中 rowkey 的映射关系 2.3、OpenTSDB 的总体结构 名词解释: Servers:服务器 C:Collector,收集

第1页/共23页 下一页>尾页