Java 如何使用测微计和普罗米修斯(PromQL)测量异步过程的总时间?

Java 如何使用测微计和普罗米修斯(PromQL)测量异步过程的总时间?,java,spring,microservices,micrometer,Java,Spring,Microservices,Micrometer,我有以下的微服务场景 微服务1 1-收集System.getCurrentTimeMillis 2-在数据库中执行操作后生成id 3-此步骤应将ID和操作的初始时间发送给普罗米修斯 微服务7 1-使用第一个微服务中生成的ID完成对消息的处理 2-收集System.getCurrentTimeMillis 3-此步骤应将ID和操作的最后时间发送给普罗米修斯 如何实现步骤3,然后使用ProMQ来测量总事务时间 如果可能的话,数据可以在prometheus中以直方图的形式显示,就像在http请求的显示

我有以下的微服务场景

微服务1

1-收集System.getCurrentTimeMillis

2-在数据库中执行操作后生成id

3-此步骤应将ID和操作的初始时间发送给普罗米修斯

微服务7

1-使用第一个微服务中生成的ID完成对消息的处理

2-收集System.getCurrentTimeMillis

3-此步骤应将ID和操作的最后时间发送给普罗米修斯

如何实现步骤3,然后使用ProMQ来测量总事务时间


如果可能的话,数据可以在prometheus中以直方图的形式显示,就像在http请求的显示中一样。

您所描述的方法实际上并不是prometheus的预期用途。您正在描述日志记录或跟踪。(见附件等)

发送给普罗米修斯的度量是聚合的。所以你(通常)无法挑出单独的电话。(任何用来让它工作的黑客都不会扩展得太远)


测微计/普罗米修斯最适合用于跟踪处理各个步骤的累计持续时间。

我只是忘了评论,但我不能使用opentracing(Zipkin、Jaeger等)在我的服务之间有一个步骤,请求被发送到第三方系统,该系统不允许我发送相关的标题,正文需要按照它们定义的格式进行标准化,正是出于这个原因,我正在寻找其他的选择。