opentsdb处理tagv指标数不够用的问题

来源:互联网 发布:淘宝联盟实名验证 编辑:程序博客网 时间:2024/04/27 13:32

1:简单介绍

   opentsdb一个指标是有metrics、tagk、tagv 3部门组成的,在hbase tsdb-uid表里面存放,opentsdb metrics、tagk、tagv是自增型增长,在hbase表里面有个rowkey是“\x00”,里面记录了metrics、tagk、tagv的个数,每当新增一个tagv时,rowkey为"\x00",“id:tagv”的value就会增加1,一般opentsdb的tagv设置的是3个bytes,也就是tagv可以有2的24个,但是,当tagv的只越来越多,就会造成tagv指标数不够用,就会报出以下错误:“OMG All Unique IDs fortagv on 3 bytes are already assigned!”,以下是分析和解决tagv指标不够用的步骤。

2:分析过程

   opentsdb可以通过http接口和bash命令查看所有的tagv的值,如下:

   http接口:http://IP:4242/api/suggest?type=tagv&max=3000&q=test其中type是类型(metrics、tagv、tagk) max:显示最大数 q:类似的

   bash命令:tsdb uid grep tagv '.*'

   一般http接口不适用于大规模的查询,自己测试了下,一般最大查询数能达到3000,再多就查询不出来了,一般都用bash命令来查询,将查询结果放到一个文本里面,然后慢慢分析哪些指标有用,哪些指标没用

3:操作步骤

1)停止opentsdb的服务

     service opentsdbstop

2)删除没用的的tagv

bash命令:tsdb uid delete tagv tagv-name

3)一般来说,即使删除没用的指标,我们也不能创建新的tagv,因为hbase数据库里面rowkey为“\x00”的value没有减小,所以新创建不了,所以接下来就是删除“\x00”的值

进入hbase数据库:hbaseshell ;deleteall 'tsdb-uid',"\x00",'id:tagv'这样就可以删除

4)通过tsdb命令创建新的tagv,查看hbase数据库里面rowkey为“\x00”,名称是“id:tagv”是否有这一行

创建tagv:a. tsdbuid assign tagv test0001 b. tsdb mkmetric test0001可以通过这两条命令创建tagv

habse数据库查看:hbase shell,然后通过 get'tsdb-uid',"\x00"查看有没有“id:tagv”的行

5)启动opentsdb的服务

service opentsdb start

6)检查数据是否丢失

grafana可以通过掉opentsdb的接口来做图形展示,可以查看之前的图形是否有变化,之前的数据是否丢失

4:操作总结

一般通过上述方法删除tagv这种方式,删除之后,如果如果tagv的uid和之前的一样,他会继承之前的数据,他不会去删除这个tagv所关联的监控数据