当前位置: 首页 > 知识库问答 >
问题:

如何正确使用千分尺?

柯国安
2023-03-14

假设我有一个应用程序,其中REST API更新产品的价格。
我想使用微米计来公开新价格作为指标。我无法理解微米计留档应该如何完成。

唯一对我有效的DoubleFunction是在我的ProductService中创建一个新方法来返回它的价格。这似乎是我想公开作为指标的每一条数据的开销。

我这里缺少什么?为什么product.getPrice()不足以更新Gauge?

共有1个答案

鱼渝
2023-03-14

千分尺的量规将保持一个参考值,无论它从中提取值。默认情况下,该引用是一个WeakReference

例如:

    < li >统计量 < li >默认仪表

这意味着,如果您提供的值被垃圾收集,千分尺将没有任何东西可以从中轮询该值。

我假设当您调用< code>product.getPrice()时;您永远不会保留该值,只是将它传递给< code > meter registry . gauge(" product . price ",tags,value);因为在这段代码完成后,没有任何东西持有对该特定值的强引用,所以它被垃圾收集(GC-ed)。

您在这里有几个解决方案:要么使用构建器构建一个仪表并指定强引用(true),要么(更好)确保你持有你的参考文献并自己管理它们的值。

两者都很奇怪,因为你最终会在内存中保存很多“仪表源”。

 类似资料:
  • 我对Spring很陌生,正在尝试将我的应用程序连接到麋鹿。该应用程序运行的是Spring boot 1.5.5,因此我使用的是微米遗产。我的pom看起来像这样: 每当我尝试启动我的应用程序时,我都会收到以下错误: 根本原因似乎是类io.micrometer.core.instrument.config.validate.Validated它似乎没有像它应该的那样出现在包中。对此有什么想法吗?

  • 问题内容: 我的代码示例: 结果是: 我究竟做错了什么? 问题答案: 您尚未为结果指定比例。请尝试这个 2019编辑:已更新JDK 13的答案。因为希望您现在已从JDK 1.5迁移。 请阅读JDK 13 文档。 JDK 1.5的旧答案 : 结果将为0.33。请阅读API

  • 我的代码示例: 结果是:<代码>1/3=0 我做错了什么?

  • 我对千分尺的理解仍然相当小,所以我将首先介绍我真正想要实现的目标。 目的 鉴于我在数据库表中有记录,每条记录都包含一个“creation_date”。 给定客户端调用 API 来获取这些记录 我想记录记录记录的访问次数,按其创建日期分组(仅月和年) 示例结果 在过去的6小时内,访问了2021年1月创建的10条记录 在过去的12小时内,访问了2021年2月创建的15条记录 在上周一和上周二之间,访问

  • 我有一段使用Codahale度量的旧代码。我想把它换成千分尺。我可以切换简单的对象,但我在重现某些Codahale特定对象的功能时会遇到一些问题。 我很好地切换到简单的对象,但我在复制某些特定于Codahale对象的功能时遇到了一些困难。在这方面,我没有发现任何令人满意的比较。我是基于文档和文章,但仍然没有运气。我不知道我想做的事是否可能。 例如,以微米为单位,这看起来如何? 或者只是一个简单的弦

  • 问题内容: 我只想检索UserAccount类中的某些列,所以我有以下代码: 我得到了空值作为回报。但是,如果我注释掉setProjections,我将获得具有所有属性的用户。在这种情况下,如何正确使用setProjection? 问题答案: 它返回一个Object数组,因此代码应为: