有没有办法查询没有标记的度量值?例如,metric1用tag1,tag2或只用tag1记录。我怎么能得到所有只有tag1的图形而不是同时具有tag1的图形nd tag2?
答案 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标志,它完全符合您的要求:
- 对于具有不同标记的指标,可以使用此标准来避免聚合 时间序列不应包括在最终结果中。
醇>
与您的问题无关,但根据文档,它也可用于优化查询:
从2.3及更高版本开始,如果您知道给定的所有标记键 使用explicitTags可以大大提高度量查询延迟 特征。这面旗帜有两个好处:
- 对于具有高基数的指标,后端可以切换到 更高效的查询以从存储中获取较小的数据子集。 (特别是在2.4)
醇>