0

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

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

当处理这些字段需要相似的时间时,结果相似。但是,如果它发生变化(特别是如果时间根据数据的性质而不同),基于时间的统计数据会稍微令人困惑,并且不能反映我想要看到的内容。

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

4

1 回答 1

1

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

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

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

asPercent 函数图示例

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

于 2013-09-26T15:08:37.253 回答