0

我想用 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 Metrics 的一些变化吗?

我已经查过了。

  • 这个程序通过这些代码。
  • 即使我将主机和端口更改为错误的,也没有例外。
4

1 回答 1

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.

于 2017-05-09T15:07:32.307 回答