Dropwizard Counter 和 Meter 计数相同吗?

Are Dropwizard Counter and Meter count the same?

我想知道 "Counter" 和 "Meter" class 维护的计数是否有区别?我也了解仪表测量速率,但我很想知道是否同时更新了一个计数器和一个仪表(计数器增加),我认为这两个数字会相同。我这个假设错了吗?

仪表还简单地跟踪仪表上标记事件的计数。它以与计数器相同的方式执行此操作,因此 Meter 只是一个对象,它包含计数器的内部结构 + 也用于测量发生事件的速率的逻辑。

这是一个代码示例:

public class MetricTest {
    public static void main(String[] args) {
        MetricRegistry r = new MetricRegistry();
        Counter counter = r.counter("counter");
        Meter meter = r.meter("meter");

        counter.inc();
        meter.mark();

        System.out.println(counter.getCount());
        System.out.println(meter.getCount());

        counter.inc(10);
        meter.mark(10);

        System.out.println(counter.getCount());
        System.out.println(meter.getCount());
    }
}

将打印:

1
1
11
11

所以是的,如果计数器和计量器以相同的方式更新,它们将具有相同的计数。计价器额外使用计数来计算平均速率(除了 1/5/15 - 分钟)

希望对您有所帮助,

阿图尔

计数器可以递减。仪表不能递减。所以,当counter和meter一起使用时,"counters"的值随着Counter的值递减而不同。