繁体   English   中英

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

[英]Using Micrometer Timer across Java processes?

我想使用 Micrometer 收集从一个 Java 进程开始并在另一个 Java 进程中完成的任务的持续时间指标(它们之间通过 Kafka 进行通信)。

我正在考虑使用返回LongTaskTimer.Sample object 的LongTaskTimer.start() ,然后将其与 Kafka 消息一起传递给第二个进程,然后使用LongTaskTimer.Sample.stop()记录任务持续时间。 但尚不清楚LongTaskTimer.Sample对象是否可以序列化,以及这种方法是否可行。

是否有可能使上述方法起作用? 如何? 如果没有,实现既定目标的最简单方法是什么?

不确定这是否重要 - 我的运行时环境是 Spring Boot 2,我正在将指标收集到 Prometheus(使用标准千分尺 prometheus 注册表)。

Micrometer 不支持跨多个 JVM 生成的指标。 您的选择是:

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

  2. 使用某种追踪软件。 像 Jaeger 这样的东西(见这里的例子)

  3. 自己实现流程(比如测量流程 A 中一个操作的时间差异,然后将此值放入 kafka 消息中,然后在流程 B 中读取此值并在完成时添加自己的延迟等等。链中的最后一个流程可以记录值或其他内容(如果需要,也可以使用千分尺)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM