1

在石墨中添加新标签有多容易?

例如,假设我正在向这样的一个指标添加数据。

count.chrome 12 time
count.ie 10 time

现在我像这样在石墨度量中添加新标签

count.chrome.host1 10 time
count.chrome.host2 11 time
count.ie.host2 9 time

我认为只要标签位置在指标中保持不变,我们就可以做上述事情。但我的问题是我现在如何查询来聚合数据。

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

sumSeries(count.*)

上面应该给我 52 而不是 22。

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

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

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

4

1 回答 1

1

“例如,我想查询所有浏览器的计数总和。我可以这样做吗?sumSeries(count.*)”

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

count.chrome 12 time
count.ie 10 time
count.chrome.host1 10 time
count.chrome.host2 11 time
count.ie.host2 9 time

在这种情况下,度量树就像 -

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 的正则表达式,因此您不仅限于*.

于 2014-01-17T05:14:29.030 回答