java - 如何正确从 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);
例如,当我想比较两个长值时?
解决方案
这里有3个问题。所有人都有截然不同的答案。
缓存仪表
千分尺中没有缓存量规的等效项。我建议打开一个请求它的问题。这将是一个很好的补充。我会提倡它。(我什至自己也需要类似的东西)
弦规
千分尺产生的所有度量都是数字的。因此,对于要公开字符串的情况,请将其添加为标签。
meterRegistry.gauge("app.version",Tags.of("version",myVersion), this, () -> 1.0)
比率计
比率仪表只是一个典型的仪表,您自己进行除法。或者,您可以将比率源公开为它们自己的计量器,并在指标平台端进行划分。例如,Prometheus 很容易支持:
class_attendance/class_size
推荐阅读
- image - R:将绘图从绘图窗口强制转换为光栅对象
- python - 如何在没有 Onehot 编码的情况下将行数据转换为列
- swagger - Swagger/OpenApi Codegen 从 xsd 生成请求正文
- javascript - 当存在多个选择框时,jquery select2选项冲突
- python - Pandas,在 groupby 调用中重命名重复列
- swift - 覆盖的方法快速调用扩展(类别)中声明的原始方法?
- python - 返回所有单词的正则表达式,星号之间的任何文本除外
- sql - 根据轮班时间计算总停机时间
- android - 我制作了一个嵌入网站的应用程序。如何使其中的任何视频能够处于全屏模式?
- pic - 如何检测 ICSP 会话的开始?