Dropwizard Counter 和 Meter 计数相同吗?

Sea*_*ull 5 metrics dropwizard

我想知道“计数器”和“仪表”类维护的计数是否有区别?我理解 Meter 也测量费率,但我很想知道是否有计数器和仪表同时更新(计数器递增),我认为这两个数字是相同的。这个假设我错了吗?

pan*_*adb 6

仪表还简单地跟踪您在仪表上的标记事件计数。它以与计数器相同的方式执行此操作,因此 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());
    }
}
Run Code Online (Sandbox Code Playgroud)

这将打印:

1
1
11
11
Run Code Online (Sandbox Code Playgroud)

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

我希望有帮助,

阿图尔


小智 5

计数器可以递减。仪表不能递减。因此,当计数器和仪表一起使用时,当计数器值递减时,“计数器”的值会有所不同。