如何从 Dropwizard 指标正确切换到 Micrometer?
How to switch correctly from Dropwizard metrics to 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);
当我想比较两个 long 值时?
这里有3个问题。所有人都有截然不同的答案。
缓存仪表
Micrometer 中没有缓存仪表的等效项。我建议打开一个请求它的问题。这将是一个很好的补充。我会提倡它。 (我什至需要类似的东西)
弦规
Micrometer 产生的所有指标都是数字。因此,对于您想要公开字符串的情况,请将其添加为标签。
meterRegistry.gauge("app.version",Tags.of("version",myVersion), this, () -> 1.0)
比率计
比率量表只是一个典型的量表,您自己进行除法。或者,您可以将比率源公开为它们自己的仪表,并在度量平台端进行划分。例如普罗米修斯很容易支持:
class_attendance/class_size
我有一段使用 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);
当我想比较两个 long 值时?
这里有3个问题。所有人都有截然不同的答案。
缓存仪表
Micrometer 中没有缓存仪表的等效项。我建议打开一个请求它的问题。这将是一个很好的补充。我会提倡它。 (我什至需要类似的东西)
弦规
Micrometer 产生的所有指标都是数字。因此,对于您想要公开字符串的情况,请将其添加为标签。
meterRegistry.gauge("app.version",Tags.of("version",myVersion), this, () -> 1.0)
比率计
比率量表只是一个典型的量表,您自己进行除法。或者,您可以将比率源公开为它们自己的仪表,并在度量平台端进行划分。例如普罗米修斯很容易支持:
class_attendance/class_size