我们可以在graphite中添加可变数量的标签吗?

我们可以在graphite中添加可变数量的标签吗?,graphite,metric,Graphite,Metric,在graphite中添加新标签有多容易 比如说 假设我正在向这样一个度量添加数据 count.chrome 12 time count.ie 10 time 现在我在graphite metric中添加新标记,如下所示 count.chrome.host1 10 time count.chrome.host2 11 time count.ie.host2 9 time 我认为我们可以做上述事情,只要标签位置在度量中保持不变。但我的问题是现在如何查询以聚合数据 例如,我想查询所有浏览器的计数总

在graphite中添加新标签有多容易

比如说 假设我正在向这样一个度量添加数据

count.chrome 12 time
count.ie 10 time
现在我在graphite metric中添加新标记,如下所示

count.chrome.host1 10 time
count.chrome.host2 11 time
count.ie.host2 9 time
我认为我们可以做上述事情,只要标签位置在度量中保持不变。但我的问题是现在如何查询以聚合数据

例如,我想查询所有浏览器的计数总和。我也可以这样做吗

sumSeries(count.*)

上面应该给我52而不是22

或者我必须做以下事情才能得到正确的答案

sumSeries(count.*,count.*.*.

如果我们必须执行第二个选项,那么这意味着我们必须记住特定度量的所有可能度量名称,以获得正确的数据,这意味着在graphite中添加可变数量的标记是不实际的

“例如,我想查询所有浏览器的计数总和。我可以这样做吗?” 像这样的东西也是一样的吗? sumSeries(计数。*)”

不,事实上。为什么?通配符仅适用于子树的该深度。因此,您的
*
将不会解析使用它的度量下的所有子树,而只会给出该级别上的所有可能路径

在本例中,度量树如下所示-

count/chrome.wsp
count/ie.wsp
count/chrome/host1.wsp 
count/chrome/host2.wsp 
count/ie/host2.wsp
如您所见,
chrome
ie
都是这里的指标和目录。查询多个级别确实需要类似于-
sumSeries(count.*,count.*,count.*.*.*.*.*.

“这意味着我们必须记住所有可能的度量名称”


不是真的。有了一个小小的智能命名方案,您就可以轻松绕过这个限制。你要知道的是你的树的最大深度。此外,Graphite支持所有基于perl的正则表达式,因此您不仅限于
*

Hi-erbdex,谢谢您的回答。你能详细说明在上述情况下我应该如何命名吗?在我们的例子中,我们有很多事先不知道的标签。我们正在考虑的命名方案之一是,一旦遇到新标签,就在末尾添加新标签。但很明显,这种命名模式在查询上述数据时会出现问题
count/chrome.wsp
count/ie.wsp
count/chrome/host1.wsp 
count/chrome/host2.wsp 
count/ie/host2.wsp