【问题标题】:How to switch correctly from Dropwizard metrics to Micrometer?如何正确从 Dropwizard 指标切换到千分尺?
【发布时间】:2019-02-10 19:09:53
【问题描述】:

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

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

【问题讨论】:

    标签: java spring dropwizard codahale-metrics micrometer


    【解决方案1】:

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

    缓存仪表

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

    弦规

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

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

    比率计

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

    class_attendance/class_size
    

    【讨论】:

    • 您证实了我对此的担忧。我需要想办法做到这一点, Gauge 是否可行?
    • Gauge&lt;POJO&gt; 是否是特定 pojo 上的计量器,它返回引用 POJO 上的属性的 double?这是支持的。但是,如果您改为尝试写出所有 POJO 字段,则将无法正常工作。
    猜你喜欢
    • 2019-08-20
    • 2019-02-22
    • 1970-01-01
    • 1970-01-01
    • 2022-06-22
    • 2019-04-10
    • 1970-01-01
    • 2021-11-19
    • 2020-03-15
    相关资源
    最近更新 更多