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

跨 Java 进程使用千分尺计时器?

哈栋
2023-03-14

我想使用测微计来收集一个任务的持续时间度量,该任务从一个Java进程开始,在另一个Java过程结束(通过Kafka在它们之间进行通信)。

我想使用LongTaskTimer.start()返回一个LongTaskTimer.Sample对象,然后将它与Kafka消息一起传递给第二个进程,然后使用LongTaskTimer.Sample.stop()来记录任务持续时间。但是不清楚LongTaskTimer.Sample对象是否可以序列化,以及一般来说这种方法是否有效。

有可能使上述方法奏效吗?怎么会?如果不是,实现既定目标的最简单方法是什么?

不确定这是否重要——我的运行时环境是Spring Boot 2,我正在收集普罗米修斯的指标(使用标准的微米普罗米修斯注册表)。

共有1个答案

周楷
2023-03-14

千分尺不支持跨多个JVM生成的指标。您的选项是:

>

  • 使用多个指标,然后在grafana中创建一个视图,该视图将有一个求和两个(或更多)指标的查询。它可能不是流的精确测量,而是某种平均值,可以提供系统中发生的事情的“感觉”。

    使用某种跟踪软件。像Jaeger这样的东西(参见这里的示例)

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

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

    • 我正在利用dogstatsd方法,使用千分尺将指标发送给datadog。我获得了正常的指标,如计数器和计量器,但我无法生成事件。有办法生成datadog事件吗?

    • 假设我有一个应用程序,其中REST API更新产品的价格。 我想使用微米计来公开新价格作为指标。我无法理解微米计留档应该如何完成。 唯一对我有效的DoubleFunction是在我的ProductService中创建一个新方法来返回它的价格。这似乎是我想公开作为指标的每一条数据的开销。 我这里缺少什么?为什么不足以更新Gauge?

    • 是否有任何方法可以测量实用程序如何使用线程池?我已经浏览了代码,但还没有看到任何直接的选项。

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