如何从Vert.x调用Hawkular

时间:2017-05-09 14:19:10

标签: vert.x hawkular

我想用Hawkular从vert.x获取指标,但我有问题。 按照这个教程。 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指标的一些变化吗?

我已经查过了。

  • 此程序通过这些代码。
  • 即使我更改了Host和Port错误的一个,也没有execption。

1 个答案:

答案 0 :(得分:0)

我认为测试过程在指标有时间报告之前完成。我尝试了你的例子(在这个时间问题旁边看起来是正确的),并且在事件总线上发布之后不得不放置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.