Statsd&每个给定项目的石墨统计数据,而不是时间

时间:2013-09-25 12:41:44

标签: statistics graphite statsd

使用statsd和graphite处理任何指标都很容易,假设它们是按时间跨度计算的。例如,很容易跟踪每秒的请求数。

另一方面,有时可能有助于根据给定的"基本项目"来跟踪指标。例如,我处理数据集,我想跟踪无效字段的百分比,处理数据集所需的操作数等。我可以很容易地看到结果:"我们在数据集中有10个无效值每秒"和"我们平均每秒处理100个数据字段"但我宁愿在100个字段中看到类似"有10个无效值"。

处理这些字段需要相似的时间时,结果类似。但是,如果它变化(特别是如果时间根据数据的性质而不同),基于时间的统计数据会略有混淆,并不能反映出我想看到的内容。

任何解决方案如何设置statsd / Graphite来解决我提到的问题?

1 个答案:

答案 0 :(得分:1)

在StatsD / Graphite边界创建更有意义的时间序列数据关系非常困难,因为正如您在问题中提到的那样,数据(用于推导百分比)仅与时间和关键相关。

也就是说,对于这种类型的数据,我使用asPercent()设置了“百分比图”。像这样:

asPercent(stats_counts.myapp.messages.{ignored,dropped,recycled},
 stats_counts.myapp.messages.received)

Example of asPercent function graph

您还可以考虑将其推送到您的应用程序并执行计算,以便更好地关联数据并将数据作为gauge发送到Statsd。