tsdb的使用心得

虽然各种资料都在说tsdb是时序数据库,可是在我看来它更像是一个中间件。将采集到的数据以特定格式写入hbase中、提供接口,支持多种类查询。


tsdb非常方便部署。当然,你首先得有hbase,不然数据写在哪里呢?部署方案请参考:http://www.jianshu.com/p/696119630a70


至于数据写入tsdb,tcollector非常好用。修改tcollecor中的tsdb连接:最新版的 initd.sh 和 etc/config.py下各存了一份, 当然 load_etc_dir() 后,最终生效的是config中的配置。修改defaults 字典的 host 和 port 为目标 tsdb 。 ./tcollector start 启动即可。


hbase中会生成四张tsdb相关的表。最常用的是 tsdb-uid 和 tsdb:

    tsdb-uid中存储的是监控的metric, tag(tagk,tagv) 的映射信息(正向,逆向)。

    tsdb中存储的是监控的实际数据。参考:http://www.jianshu.com/p/0bafd0168647


tsdb也提供了查询接口,可配置开始/结束时间,metric,方式等信息。示例(python):

import requests

url = "http://ip:port/api/query?start=1510910546&end=1510910549&m=sum:hbase.regionserver.tables.Namespace_default_table_tsdb_metric_writeRequestCount"

requests.get(uri)


最后,为了满足业务需求,我们做了些许微调:

添加了 集群名称,ip地址信息。在send_data 方法中获得配置一起 put 进tsdb即可。

过滤集群的表信息。在HadoopHttp 的 pool方法中,添加过滤语句即可。


注意:

tsdb会缓存 tsdb-uid 的信息,倘若仅是 truncate tsdb , tsdb-uid 两张表,再次采集时可能会出现 tsdb中数据源源不断写入,tsdb-uid 中却始终为空的情况。

你可能感兴趣的:(tsdb的使用心得)