2

有什么方法可以查询没有标签的度量值?例如 metric1 是用 tag1、tag2 或只有 tag1 记录的。我怎样才能得到所有只有 tag1nd 而不是同时有 tag1 和 tag2 的图形?

4

3 回答 3

0

如果您为tag2(甚至只是tag2=*)指定一个值,则只会返回具有该标签的数据点。

于 2013-10-31T15:49:27.843 回答
0

虽然这在您询问的时候是不可能的,但从 2.3 版开始就有了explicitTags标志,它完全符合您的要求:

  1. 对于具有不同标签的指标,这可用于避免聚合不应包含在最终结果中的时间序列。

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

从 2.3 及更高版本开始,如果您知道给定指标的所有标签键,则可以通过使用 explicitTags 功能大大改善查询延迟。这个标志有两个好处:

  1. 对于具有高基数的指标,后端可以切换到更高效的查询以从存储中获取更小的数据子集。(特别是在 2.4 中)
于 2017-04-11T12:52:45.237 回答
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在 no 的情况下将其设置为 1 tag2

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

现在您可以只查询带有tag1(no tag2) 的点:

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

PS或者您可以指定一个固定值,tag2即 0 以防没有值。

于 2016-05-21T09:16:32.360 回答