Statistics 统计处;每个给定项目的石墨统计信息,而不是时间

Statistics 统计处;每个给定项目的石墨统计信息,而不是时间,statistics,graphite,statsd,Statistics,Graphite,Statsd,使用statsd和graphite处理任何度量都很容易,假设它们是按时间跨度测量的。例如,很容易跟踪每秒的请求数 另一方面,有时根据给定的“基本项”跟踪度量可能很有用。例如,我处理一个数据集,我想跟踪无效字段的百分比、处理数据集所需的操作数等。我可以很容易地看到这样的结果:“我们每秒在数据集中有10个无效值”和“我们平均每秒处理100个数据字段”,但我更希望看到这样的结果“在100个字段中,有10个无效值” 当处理这些字段所需的时间相似时,结果是相似的。但是,如果时间不同(特别是如果时间根据数据

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

另一方面,有时根据给定的“基本项”跟踪度量可能很有用。例如,我处理一个数据集,我想跟踪无效字段的百分比、处理数据集所需的操作数等。我可以很容易地看到这样的结果:“我们每秒在数据集中有10个无效值”和“我们平均每秒处理100个数据字段”,但我更希望看到这样的结果“在100个字段中,有10个无效值”

当处理这些字段所需的时间相似时,结果是相似的。但是,如果时间不同(特别是如果时间根据数据的性质不同),基于时间的统计数据会有点混乱,不能反映我想要看到的内容


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

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

也就是说,对于这种类型的数据,我已经使用设置了“百分比图”。如下所示:

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

您还可以考虑将此向下推到应用程序中并执行计算,以便更好地将数据和数据发送到STATSD作为.