为什么要在 Dropwizard Metrics 中使用 CachedGauage?

Why ever use CachedGauage in Dropwizard Metrics?

我看到 DropWizard Metrics(以前称为 Coda Hale Metrics)库中有 CachedGauge。我想知道为什么有人 曾经 使用这个?!?

我对指标值的理解是它是实时的、准确的和相关的。如果指标报告 stale/cached 值,它可能用于什么目的?

引用您添加的相同link

Cached Gauges

A cached gauge allows for a more efficient reporting of values which are expensive to calculate

如果您的指标需要大约两秒甚至几分钟的时间来计算怎么办?你会在用户每次请求数据时都计算一次吗?存储在缓存中是有意义的。

这样的指标不是我所说的实时,因为更新本身比为用户呈现信息花费更多的时间。该指标在完成计算时已经过时。

使用 CachedGauge 时请注意警告。在指定缓存该值的时间时,您需要考虑计算时间。这是因为缓存过期时间在计算完成之前开始计算,而不是计算值之后的缓存时间。

例如,在 link 的例子中,我们缓存一个值 10 分钟,如果 loadValue() 需要 5m,我们只缓存它 10m - 5m = 5分钟。