关于TSMeta中TSUID生成的BUG问题

    举个例子说明吧,

    假设我想监控一台服务器上,每个CPU的值(现在cpu都有多核) ,那么我会发送:

    cpu  {ip=192.168.1.1,core=0}   1334566633132   10

    (即表示主机192.168.1.1中第1核cpu的占用率是10%)其中

    cpu: 是metric 及指标名

    {ip=192.168.1.1,core=0}: 是tags,ip和core是tagk ,即维度名  192.168.1.1和0是tagV即维度值。

     1334566633132  :是时间戳

    10是指标值,即监控值


    那么在以上例子,TimeSeries就是

    cpu  {ip=192.168.1.1,core=0}

    也就是去除了时间戳,和指标值,这两个动态变化的东西之后,剩余的就是timeseries的定义。


    Each timeseries in OpenTSDB is uniquely identified by the combination of it's metric UID and tag name/value UIDs

      在OpenTSDB中每个TimeSeries都有一个唯一的ID,也叫TSUID, 这个ID是由指标的UID+tagk/tagv的UID组合而来。

     假设上面的例子中:   metric,tagk,tagv都有唯一的UID

        cpu:000001  ip:000002  192.168.1.1:000003  core:000004  0:000005

     TSUID即这些UID的组合,其中metric所在UID排在第一位:000001000002000003000004000005 


      OK,到此,我想可能会发现问题,在有多个tagk/tagv对的时候,如何决定tagk/tagv的排序呢,不同的排序组合会生成不同的TSUID,而TimerSeries对应的TSUID应该并且必须是唯一的。

    

        目前还没有做到深入研究OpenTSDB的源码,但是在实际使用的过程中发现了这样的问题:

        现在OpenTSDB支持TSUID生成的方式有三种:

        (1) 通过real-time方式生成,及系统在接受监控数据后,自动实时生成,在opentsdb.conf配置即可

        (2) 通过CLI客户端命令行来请求生成。

        (3) 通过API调用生成。

        在实际使用过程中发现,使用第三种API调用生成的TSUID 会和(1)/(2)两种生成的不一致。

       这也就导致了,同一个TimeSeries会有多个不同的TSUID

   关于TSMeta中TSUID生成的BUG问题_第1张图片

     

     目前该问题还在测试中,测试使用的版本是2.1.0  2.1.1 接下来将会看最新版本2.1.3中有没解决该问题!


更新:

    经过对最新版本2.1.3的测试,发现TSUID的生成唯一性问题 依然存在!


你可能感兴趣的:(关于TSMeta中TSUID生成的BUG问题)