在石墨中添加新标签有多容易?
例如 假设我正在向这样的一个指标添加数据。
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.*.*)
如果我们必须做第二个选项,那么这意味着我们必须记住特定指标的所有可能的指标名称以获得正确的数据,这意味着在石墨中添加可变数量的标记是不切实际的。
答案 0 :(得分:1)
“例如,我想查询所有浏览器的总数。我可以这样做吗? 像这样的东西呢? sumSeries(计数。*)“
不,实际上。为什么?通配符仅适用于子树的深度。因此,*
无法解析您使用它的指标下方的所有子树,但只会在 级别为您提供所有可能的路径。
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的正则表达式,因此您不仅限于*
。