为什么 com.netflix.spectator.api.Counter 产生 "normalized" 值?
Why does com.netflix.spectator.api.Counter produes "normalized" values?
我正在尝试使用 Spectator 进行计数。用法如下:
@Autowired
private Registry registry;
然后调用:
registry.counter("ping").count();
当我去 http://localhost:8080/metrics
我看到:
"ping(type=NORMALIZED)":0.05
为什么会这样?如何配置 Spectator 进行计数?
用 Spectator 的说法,Counter
用于衡量某些事件发生的速率(即始终在某个时域内归一化)。更详细的解释可用 here。在将指标发送到指标服务器之前,指标发布者会执行此规范化(例如,Atlas 设置为按固定时间间隔发布,因此会在该时间window 内进行规范化)。由于对于计数器而言 rate 是重要的,因此不需要保留时间 window 内的离散计数器事件。
如果您只是想计算某个东西在 一直 中出现的总次数,您应该使用 Gauge
(参见 explanation)反而。但是,我要提醒您,对于长时间的 运行 服务,计算某些事件发生的总次数可能最终会溢出。通常,Gauges 用于计算具有自然上限(并且不一定单调递增)的事物,例如缓存中元素的总数,或 运行 线程数。
我正在尝试使用 Spectator 进行计数。用法如下:
@Autowired
private Registry registry;
然后调用:
registry.counter("ping").count();
当我去 http://localhost:8080/metrics
我看到:
"ping(type=NORMALIZED)":0.05
为什么会这样?如何配置 Spectator 进行计数?
用 Spectator 的说法,Counter
用于衡量某些事件发生的速率(即始终在某个时域内归一化)。更详细的解释可用 here。在将指标发送到指标服务器之前,指标发布者会执行此规范化(例如,Atlas 设置为按固定时间间隔发布,因此会在该时间window 内进行规范化)。由于对于计数器而言 rate 是重要的,因此不需要保留时间 window 内的离散计数器事件。
如果您只是想计算某个东西在 一直 中出现的总次数,您应该使用 Gauge
(参见 explanation)反而。但是,我要提醒您,对于长时间的 运行 服务,计算某些事件发生的总次数可能最终会溢出。通常,Gauges 用于计算具有自然上限(并且不一定单调递增)的事物,例如缓存中元素的总数,或 运行 线程数。