【问题标题】:Metrics filter in Graphite - ignore hierarchy (dots)Graphite 中的指标过滤器 - 忽略层次结构(点)
【发布时间】:2013-03-11 13:06:43
【问题描述】:

有什么方法可以在忽略层次结构的情况下过滤 Graphite 中的指标?

例如: 假设我有以下指标:

stats_count.A.B.TestMetric 
stats_count.A.TestMetric
stats.A.B.TestMetric
stats.A.B.TestMetric

我如何在 stats_count only 下对 TestMetric 求和?

我尝试了以下没有成功:

stats_counts.*.*.TestMetric - obviously this won't work...
sumSeriesWithWildcards(stats_counts.[A-Z\.]*[A-Z]*.TestMetric,1)
sumSeriesWithWildcards(stats_counts.[A-Z]*[.]*[A-Z]*.TestMetric,1)

有什么想法吗?有可能吗?

【问题讨论】:

  • A 和 B 是否采用一组固定值,或者它们是未知的?
  • 它们应该被认为是未知的(否则我可以通过“复制”过滤器来使用一些“或”条件)。唯一已知的名称是 stats_count + TestMetric。我想以一般方式解决它 - 这意味着能够总结甚至系列,如:stats_count.*.*.*.*.TestMetric
  • 恐怕我不认为你想要什么是可能的。 Graphite 非常围绕一致、统一的路径方案进行设计。
  • 这也是我得出的结论……感谢您的回复!

标签: wildcard metrics graphite statsd


【解决方案1】:

我有一个石墨安装(版本 0.9.9),我在其中在许多小型系统上创建指标

例如,我安装了 2 个 postgresql 数据库(postgresql-1 和 postgresql-2),其中第二个是第一个的从属复制。第一个数据库用于日常使用,而第二个数据库主要用于报告系统和调试查询

我认为下面的例子是你想要做的。图像是两个数据库上的连接量。蓝线在第一个,绿线在第二个,红线是两个系列的总和,给出连接总数

database.postgresql-1.connection.ALL.value              # blue line
database.postgresql-2.connection.ALL.value              # green line
sumSeries(database.postgresql-*.connection.ALL.value)   # red line

您的问题是您的系列有不同的路径级别(我试图在我的系列名称上避免这种情况,因为它确实会导致问题)。除了写这样的东西,我没有看到任何其他选择:

给定

stats_count.A.B.TestMetric 
stats_count.A.TestMetric
stats.A.B.TestMetric
stats.A.B.TestMetric

sum stats_count.**.TestMetric 指标使用

sumSeries(stats_count.*.TestMetric, stats_count.*.*.TestMetric)

Graphite 仍然需要大量改进,不幸的是,开发进展非常缓慢(例如 0.9.10 版是最新版本,安装有问题,并且是 1 年前的)。我确实在考虑分叉/为这个项目做贡献

【讨论】:

  • 感谢您的回复。目前,您的解决方法可以很好地解决问题。这就是我在上面的 cmets 中提到的“或”条件。所以 Graphite 目前确实不支持这个。再次感谢!
猜你喜欢
  • 1970-01-01
  • 2013-02-08
  • 2018-10-02
  • 2015-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-03
  • 1970-01-01
相关资源
最近更新 更多