如何从Dropwizard指标正确切换到千分尺?

时间:2019-02-10 19:09:54

标签: java spring dropwizard codahale-metrics micrometer

我有一段使用Codahale指标的旧代码。我想将其更改为微米。而且我可以轻松切换那些简单的对象,我在复制某些Codahale特定对象的功能方面遇到了一些麻烦。

我可以轻松切换一些简单的东西,但是我在复制某些Codahale特定对象的功能时遇到了一些麻烦。我在该地区找不到令人满意的比较。我以文档和文章为基础,但还是没有运气。我不知道我想做什么甚至可以。

例如,在千分尺中看起来如何?

final CachedGauge<T> g = new CachedGauge<T>(refreshPeriod, TimeUnit.SECONDS) {
    @Override
    protected T loadValue() {
        try {
        return provider.call();
        } catch (Exception ex) {
            throw new RuntimeException("Failed to get cached value for [" + name + "]", ex);
        }
    }
};
metricRegistry.register("gauge." + fullName, g);

还是只是一个简单的弦计?:

Gauge<String> gauge;  

还是比率计?

RatioGauge ratioGauge = new AttendanceRatioGauge(15, 20);

例如当我想比较两个长值时?

1 个答案:

答案 0 :(得分:2)

这里有3个问题。所有答案都有很大不同。

缓存的量规

在千分尺中没有等效的缓存量规。我建议打开一个要求它的问题。这将是一个很好的补充。我会主张的。 (我自己甚至需要类似的东西)

弦规

千分尺产生的所有指标都是数字。因此,对于要公开字符串的情况,请将其添加为标签。

meterRegistry.gauge("app.version",Tags.of("version",myVersion), this, () -> 1.0)

比率计

比率量表只是一个典型的量表,您可以自己进行划分。或者,您可以将比率源显示为它们自己的计量表,并在指标平台侧进行划分。例如Prometheus可以轻松地支持这一点:

class_attendance/class_size