有什么方法可以查询没有标签的度量值?例如 metric1 是用 tag1、tag2 或只有 tag1 记录的。我怎样才能得到所有只有 tag1nd 而不是同时有 tag1 和 tag2 的图形?
问问题
547 次
3 回答
0
如果您为tag2
(甚至只是tag2=*
)指定一个值,则只会返回具有该标签的数据点。
于 2013-10-31T15:49:27.843 回答
0
虽然这在您询问的时候是不可能的,但从 2.3 版开始就有了explicitTags标志,它完全符合您的要求:
- 对于具有不同标签的指标,这可用于避免聚合不应包含在最终结果中的时间序列。
与您的问题无关,但根据文档,它也可用于优化查询:
从 2.3 及更高版本开始,如果您知道给定指标的所有标签键,则可以通过使用 explicitTags 功能大大改善查询延迟。这个标志有两个好处:
- 对于具有高基数的指标,后端可以切换到更高效的查询以从存储中获取更小的数据子集。(特别是在 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 回答