• 沒有找到結果。

3.5.1 OpenTSDB 概述

OpenTSDB是基于HBase的分布式、可伸缩的时间序列数据库。它存储的是时间序列数 据,时间序列数据是指在不同时间点上收集到的数据,这类数据反映了一个对象随时 间的变化状态或程度。

OpenTSDB 架构

OpenTSDB由时间序列守护进程(TSD)和一组命令行实用程序组成。与OpenTSDB的 交互主要通过运行一个或多个TSD来实现。每个TSD都是独立的。没有主服务器,没有 共享状态,因此您可以根据需要运行任意数量的TSD来处理您向其投入的任何负载。

每个TSD使用CloudTable集群中的HBase来存储和检索时间序列数据。数据模式经过高 度优化,可快速聚合相似的时间序列,从而最大限度地减少存储空间。TSD的用户不 需要直接访问底层存储。您可以通过HTTP API与TSD进行通信。所有通信都发生在同 一个端口上(TSD通过查看它收到的前几个字节来确定客户端的协议)。

3-25 OpenTSDB 架构

基本概念

data point:时间序列数据点,包括metric、timestamp、value和tag。表示某个 metric在某个时间点的数值。

metric:指标项。例如,在系统监控中的CPU使用率、内存、IO等指标。

timestamp:UNIX时间戳(自Epoch以来的秒或毫秒),即value产生的时间。

value:某个metric的值,是JSON格式的事件或直方图/摘要。

tag:标签,是由Tagk和Tagv组成的键值对。用于描述该点所属的时间序列。

标签允许您从不同的源或相关实体中分离出类似的数据点,因此您可以轻松地单 独或成组地绘制它们。标签的一个常见用法是使用生成数据点的机器名称以及机 器所属的集群或池的名称来注释数据点。这使您可以轻松地制作显示每个服务器 的服务状态的仪表盘,以及显示跨逻辑服务器池的聚合状态的仪表盘。

OpenTSDB 系统表简介

OpenTSDB是基于HBase存储时序列数据的,在集群中开启OpenTSDB后,系统会在集 群中创建4张HBase表。OpenTSDB系统表如表3-15所示。

说明

请不要人为去修改这4张HBase表,因为这可能会导致OpenTSDB不可用。

3-15 OpenTSDB 系统表

表名 说明

OPENTSDB.DATA 用于存储数据点,OpenTSDB的所有数据都存储在这个表中。

OpenTSDB按照salt进行分区,默认20个region,暂不支持设 置。

OPENTSDB.UID 用于存储UID映射,数据点中的每个metric,tag都会映射成 UID,同时每个UID反向映射为metric,tag,这些映射关系存储 在这个表中。

OPENTSDB.TREE 用于存储metric的结构信息,默认未开启该特性。

OPENTSDB.MET

A 用于存储时间序列索引和元数据,默认未开启该特性。

3.5.2 连接 OpenTSDB

创建CloudTable集群时,如果开启了OpenTSDB,等集群创建成功后,用户就可以在 弹性云服务器上通过OpenTSDB链接地址访问OpenTSDB,向资源路径发送HTTP请求 进行数据的读写。

如果在创建集群时没有开启OpenTSDB,可以在集群创建完成后,参考开启

OpenTSDB进行开启。

OpenTSDB 的 HTTP API 访问

OpenTSDB只支持通过HTTP API的方式进行访问。对于未开启IAM认证的集群,

OpenTSDB对外的访问是采用HTTP协议的方式实现,对于开启了IAM认证的集群,

OpenTSDB对外的访问是采用HTTPS协议的方式实现。

说明

HTTP协议本身有安全风险,HTTPS是安全协议,建议使用HTTPS连接方式。

CloudTable服务上的OpenTSDB使用的版本是OpenTSDB 2.3.0,它的接口与开源 OpenTSDB的接口是保持一致的。

有关OpenTSDB API的更多信息,请参考《表格存储服务开发指南》的OpenTSDB API

简介章节。

连接 OpenTSDB

步骤1 获取OpenTSDB链接地址。

请登录表格存储服务管理控制台,在左侧导航树单击“集群模式”,在集群列表中找 到所要查看的集群,单击集群名称进入集群基本信息页面,获取其中的“OpenTSDB 链接地址(内网)”。

3-26 OpenTSDB 链接地址

步骤2 准备客户端运行环境。

OpenTSDB链接地址是内网地址,您需要准备一台和CloudTable集群在相同区域、可 用区、虚拟私有云、子网和安全组的弹性云服务器才能访问OpenTSDB。

创建并登录弹性云服务器的具体操作,请参见准备弹性云服务器。

步骤3 在弹性云服务器上,访问OpenTSDB。

您可以通过以下两种方式访问OpenTSDB:

● 使用cURL命令行工具或Postman等REST客户端,发送HTTP请求访问 OpenTSDB。

例如,使用cURL命令行工具发送以下请求,如果返回200 OK,说明连接 OpenTSDB成功。{OpenTSDB URL}为步骤1中获取的OpenTSDB链接地址。

curl -i -X GET http://{OpenTSDB URL}/api/version

以下是一个写入数据和查询数据的示例:

a. 写入数据:

curl -i -X POST -d '{"metric":"money", "timestamp":1524900283, "value":1, "tags":

{"card":"card1"}}' http://{OpenTSDB URL}/api/put?sync -k -v

b. 查询数据:

curl -i -X POST -d '{"start": 1524900283,"end": 1524900289,"queries": [{"aggregator":

"sum","metric": "money"}]}' http://{OpenTSDB URL}/api/query -k -v

● 开发应用程序,调用HTTP API访问OpenTSDB进行数据的读写。

详细内容请参考《表格存储服务开发指南》中的以下章节:

开发OpenTSDB应用

OpenTSDB API简介

----结束