openTSDB查询没有标记的指标

时间:2013-10-31 11:15:49

标签: opentsdb

有没有办法查询没有标记的度量值?例如,metric1用tag1,tag2或只用tag1记录。我怎么能得到所有只有tag1的图形而不是同时具有tag1的图形nd tag2?

3 个答案:

答案 0 :(得分:0)

如果您为tag2指定了值(即使只是tag2=*),则只会返回包含该标记的数据点。

答案 1 :(得分:0)

你的问题(如果我理解为,你的意思) - 你有一个时间序列:

{metric: metric1, timestamp: 123467789, value: 32, tags:{tag1:foo, tag2:bar}}

查询:

/api/query??start=1h-ago&m=sum:metric1{tag1=foo,tag2=bar}

但你想要的只是数据点 - 只有tag1

{metric: metric1, timestamp: 123467789, value: 32, tag1:foo}

<强>答案

我没有找到任何解决方案 - 但有一个建议。您可以通过引入第三个标记来使其工作,例如tag3如果没有tag2则将其设置为1:

{metric: metric1, timestamp: 123467789, value: 32, tags:{tag1:foo, tag3:bar}}

现在,您只能查询点tag1(无tag2):

/api/query??start=1h-ago&m=sum:metric1{tag1=foo,tag3=1}

PS 或者您可以为tag2指定固定值,如果没有值则为0。

答案 2 :(得分:0)

虽然在您提出要求时这是不可能的,但自版本2.3以来有explicitTags标志,它完全符合您的要求:

  
      
  1. 对于具有不同标记的指标,可以使用此标准来避免聚合   时间序列不应包括在最终结果中。
  2.   

与您的问题无关,但根据文档,它也可用于优化查询:

  

从2.3及更高版本开始,如果您知道给定的所有标记键   使用explicitTags可以大大提高度量查询延迟   特征。这面旗帜有两个好处:

     
      
  1. 对于具有高基数的指标,后端可以切换到   更高效的查询以从存储中获取较小的数据子集。   (特别是在2.4)
  2.