如何从 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.
我想使用 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.