如何将事件总线度量Vertx与Prometheus集成

如何将事件总线度量Vertx与Prometheus集成,prometheus,vert.x,micrometer,Prometheus,Vert.x,Micrometer,我使用的是普罗米修斯内置的VertX指标。 这里是我的代码设置: try { MicrometerMetricsOptions options = new MicrometerMetricsOptions() .setPrometheusOptions(new VertxPrometheusOptions().setEnabled(true)) .setEnabled(true); Vertx vert = Ver

我使用的是普罗米修斯内置的VertX指标。 这里是我的代码设置:

try {
        MicrometerMetricsOptions options = new MicrometerMetricsOptions()
        .setPrometheusOptions(new VertxPrometheusOptions().setEnabled(true))
        .setEnabled(true);
        
        Vertx vert = Vertx.vertx(new VertxOptions().setMetricsOptions(options));
        
        vert.deployVerticle(ExecBlocking.class, new DeploymentOptions());
    } catch(Exception e){
        System.out.println("Error: " + e);
    }
但是,当我在localhost:8080上运行vertx实例时,我找不到事件总线度量、HTTP客户端度量、Net客户端度量。(这些度量在GETlocalhost:8080/metrics上看不到,只需查看HTTP服务器度量和Vert.x池度量

我的问题: 如何查看GETlocalhost:8080/metrics上缺少的度量(事件总线、网络、HTTP客户端)

提前感谢。

我发现:

如果发生了关于这些度量的事件,那么度量(事件总线,…)仅在GET上显示

所以我做了测试,将消息发送到事件总线,然后我可以在GET度量请求中查看和事件总线相关的度量

我部署了一个verticle将消息发送到事件总线:

public class EventBusProducer extends AbstractVerticle {
@Override
public void start() throws Exception {
vertx.setPeriodic(1000, x -> {
  Greetings.get(vertx, greetingResult -> vertx.eventBus().send("greeting", greetingResult.result()));
   });
  }
}

class Greetings {
   private static final String[] GREETINGS = {
      "Hello world!",
      "Bonjour monde!",
      "Hallo Welt!",
      "Hola Mundo!"
   };
   private static final Random RND = new Random();

   private Greetings() {
   }

   static void get(Vertx vertx, Handler<AsyncResult<String>> responseHandler) {
     vertx.executeBlocking(fut -> {
     // Simulate worker pool processing time between 200ms and 2s
     int processingTime = RND.nextInt(1800) + 200;
     try {
        Thread.sleep(processingTime);
     } catch (InterruptedException e) {
        e.printStackTrace();
     }
    fut.complete(GREETINGS[RND.nextInt(4)]);
  }, responseHandler);
 }
}
公共类EventBusProducer扩展了AbstractVerticle{
@凌驾
public void start()引发异常{
vertx.setPeriodic(1000,x->{
Greetings.get(vertx,greetingResult->vertx.eventBus().send(“greeting”,greetingResult.result());
});
}
}
班级问候语{
私有静态最终字符串[]问候语={
“你好,世界!”,
“世界你好!”,
“哈罗!”,
“你好
};
私有静态最终随机RND=新随机();
私人问候{
}
静态void get(Vertx Vertx,Handler responseHandler){
vertx.executeBlock(fut->{
//模拟工作池处理时间介于200ms和2s之间
int processingTime=RND.nextInt(1800)+200;
试一试{
线程睡眠(处理时间);
}捕捉(中断异常e){
e、 printStackTrace();
}
进一步完成(问候[RND.nextInt(4)];
},负责人);
}
}