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

千分尺中的计数器可以从设定值开始吗?

查宜修
2023-03-14

我花了一些时间阅读micrometer.io计数器。对于我的特定用例,我需要始终使用应用程序开始时可用的特定值来启动计数器。

由于应用程序有多个pod,我希望设置这个初始值,然后可以增加任意数量的pod。< code >计数器支持的唯一方法是增量。我想到了使用< code>Gauge,但是有各种各样的缺点,因为我的度量始终是一个具有起始设置值的无限增量计数器。

以前有人解决过这个用例吗?或者有解决方法吗?

共有2个答案

梁和颂
2023-03-14

正如@Jonatan提到的:在这种情况下,你会使用一个标尺。您甚至可以创建一个标尺,指向更新的实例变量。

这样,您可以在启动时将实例变量设置为一个值,并在后台更新它以查询您的数据库。我在查询太慢的地方使用这种技术,所以我不希望在度量抓取期间发生这种情况。

上官恩
2023-03-14

您可以在启动时用任意值< code >递增一个< code >计数器,但我不建议这样做:

  • 这将被注册并作为增量发布在您的数据中
  • 每次重启应用程序都会发生这种情况
  • 这样的计数器会欺骗你,因为你不会看到增量的数量,而是其他东西

你能告诉我们你的用例吗,根据你所说的,我认为你不需要计数器的初始值,而是在你正在运行的实例中添加某种实例ID(例如:pod名称),并在你的指标后端聚合这些(和它们)。

 类似资料:
  • 我试图发布我的应用程序正在处理的事件数量。这是我在接收端的代码: 类指标是: enum < code > metric type 包含所有类型的计数器。 方法随时由 16 个线程调用。我面临的问题是打印计数的记录器,而grafana中报告的总计数相差甚远。 我必须在每次递增计数器时进行同步吗? 编辑 - 我所说的计数是关闭的,如果有两个大小为200的日志,那么grafana应该报告总计数器400。

  • 我有一个Spring Boot应用程序,我有以下依赖关系:

  • 我想使用测微计来收集一个任务的持续时间度量,该任务从一个Java进程开始,在另一个Java过程结束(通过Kafka在它们之间进行通信)。 我想使用返回一个对象,然后将它与Kafka消息一起传递给第二个进程,然后使用来记录任务持续时间。但是不清楚对象是否可以序列化,以及一般来说这种方法是否有效。 有可能使上述方法奏效吗?怎么会?如果不是,实现既定目标的最简单方法是什么? 不确定这是否重要——我的运行

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

  • 我正在用Spring Boot2编写一个应用程序。我的方法试图产生价值,直到价值是唯一的。每个唯一生成的值都被添加到缓存中。一般来说,它应该在第一次尝试时生成值,但是应用程序运行得越多,生成的值就有越多的机会出现重复,并且需要再次生成。 我想有度量,显示值的百分位数。 假设我的代码如下: 我使用千分尺,但不知道我应该从什么开始。因为为了计算百分位数,我需要存储的不是单个值,而是值的数组

  • 有没有什么简单的方法可以将千分尺计时器与网络流量控制器一起使用? 似乎@Timed只对非反应式方法有效。对于反应式,它记录非常低的时间值。 我发现了一个类似的问题:如何使用千分尺计时器记录异步方法的持续时间(返回单声道或通量),但对于这样一个常见的问题来说,答案太复杂了。 有什么想法吗?