您的位置:首页 > 运维架构

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

2017-10-12 13:21 363 查看
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所关联的监控数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  opentsdb tagv tsdb