OpenTSDB概述
更新时间:2023-01-06
OpenTSDB概述
OpenTSDB时序引擎
OpenTSDB是一个具有可伸缩性的,基于HBase的分布式时间序列数据库,其数据存储在HBase上。OpenTSDB的主要用途是从计算机系统中(如网络设备,操作系统,应用程序等)采集与保存监控数据,并且使用户可以十分容易地访问与绘制这些数据。
OpenTSDB架构
OpenTSDB由一个时序守护进程(TSD)以及一组命令行程序组成。用户与OpenTSDB的交互主要通过运行一个或多个TSD来实现。每个TSD是独立的,无状态的,因此用户可以根据需要运行任意多个TSD来处理任何负载。每个TSD都使用HBase来存储和检索时间序列数据。OpenTSDB的数据模式针对时间序列的快速聚合进行了高度优化,以最大限度地减少存储空间消耗。TSD的用户不需要直接访问底层存储。用户可以通过简单的telnet风格协议、HTTP API或简单的内置GUI与TSD通信。所有通信都发生在同一端口上。
数据规范
一条OpenTSB记录包含以下数据:
* metric - 时间序列的通用名称,如sys.cpu.user,stock.quote或env.probe.temp。
* timestamp - Unix/POSIX Epoch时间戳,以秒或毫秒为单位,定义为自1970年1月1日00:00:00 UTC 时间以来经过的秒数。目前仅支持正时间戳。
* value - 在时间序列的给定时间戳中存储的数值。这可以是整数或浮点值。
* tag(s)- 由tagk(键)和tagv(值)组成的键/值对。每个数据点必须至少有一个标记。
* data point - 时间序列数据点,表示某个metric在某个时间点的数值。
系统表简介
在集群开启OpenTSDB后,OpenTSDB会在集群中创建4张OpenTSDB系统表,用于存储数据。请不要尝试修改这4张系统表的内容,因为这可能导致OpenTSDB不可用。
OpenTSDB系统表如下所示:
表名 | 说明 |
---|---|
OPENTSDB.DATA | 用于存储OpenTSDB的数据点 |
OPENTSDB.UID | 用于存储metric,tag等元数据的UID映射关系 |
OPENTSDB.TREE | 用于存储metric的结构信息 |
OPENTSDB.META | 用于存储时间序列索引和元数据 |