如何从 Vert.x 调用 Hawkular

How to call Hawkular from Vert.x

我想使用 Hawkular 从 vert.x 获取指标,但我遇到了问题。 按照this的教程。 http://vertx.io/docs/vertx-hawkular-metrics/java/

然后,我把vert.x教程的代码改一下 http://vertx.io/blog/my-first-vert-x-3-application/

像这样。

由此

@Before
  public void setUp(TestContext context) {
    vertx = Vertx.vertx();
    vertx.deployVerticle(MyFirstVerticle.class.getName(),
        context.asyncAssertSuccess());
  }

至此

VertxOptions vertxOptions = new VertxOptions()
    .setMetricsOptions(new VertxHawkularOptions()
        .setHost("localhost")
        .setPort(8080)
        .setTenant("com.acme")
        .setAuthenticationOptions(
            new AuthenticationOptions()
                .setEnabled(true)
                .setId("jdoe")
                .setSecret("password")).setEnabled(true));
vertx = Vertx.vertx(vertxOptions);

  JsonObject message = new JsonObject()
      .put("id", "myapp.files.opened")
      .put("value", 7);
  vertx.eventBus().publish("metrics", message);

但我认为 Hawkular 没有任何变化。 首先,我检查了 WireShark,似乎没有连接此应用程序的 HTTP 请求。 我想知道如果我执行这段代码,我能看到 Hawkular 指标的一些变化吗?

我已经查过了。

我认为测试过程在指标有时间报告之前就完成了。我尝试了你的例子(除了这个时间问题之外看起来是正确的),并且在事件总线上发布后必须放置 1 秒的 Thread.sleep 才能在 Hawkular 中看到一些东西。

curl -u jdoe:password -H "Hawkular-Tenant: com.acme" http://localhost:8080/hawkular/metrics/counters

现在给

[{"id":"vertx.eventbus.publishedRemoteMessages","dataRetention":14,"type":"counter","tenantId":"com.acme"},{"id":"vertx.pool.worker.vert.x-internal-blocking.queuedCount","dataRetention":14,"type":"counter","tenantId":"com.acme"},{"id":"vertx.eventbus.receivedMessages","dataRetention":14,"type":"counter","tenantId":"com.acme"}, etc.