首页 > 解决方案 > 如何正确从 Dropwizard 指标切换到千分尺?

问题描述

我有一段使用 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);

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

标签: javaspringdropwizardcodahale-metricsmicrometer

解决方案


这里有3个问题。所有人都有截然不同的答案。

缓存仪表

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

弦规

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

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

比率计

比率仪表只是一个典型的仪表,您自己进行除法。或者,您可以将比率源公开为它们自己的计量器,并在指标平台端进行划分。例如,Prometheus 很容易支持:

class_attendance/class_size

推荐阅读