3

我有一个 Dropwizard 0.8.1 应用程序,我在其中添加了许多HystrixCommand用于调用各种外部服务的类。我现在想可视化与调用这些服务相关的统计信息,但我似乎无法让我的应用程序与Hystrix Dashboard一起玩得很好。所有文档似乎都暗示,如果我让hystrix-metrics-event-streamservlet 在我的应用程序中工作,那么一切都应该正常工作,但是当我直接调用我的 servlet 端点(curl http://localhost:8080/hystrix.stream)时,我只会得到一长串的ping:行,这意味着没有可用的指标发表。我有一个 cron 作业反复调用我的HystrixCommand对象以尝试生成一些统计信息,但无济于事。

有什么我没有做的吗?我已将依赖项添加到我的pom.xml

<dependency>
    <groupId>com.netflix.hystrix</groupId>
    <artifactId>hystrix-metrics-event-stream</artifactId>
    <version>1.4.5</version>
</dependency>

我已将 servlet 集成到 Dropwizard 中App.java

public void run(final AppConfig configuration, final Environment environment) throws Exception {
...
environment.getApplicationContext().addServlet("com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet", "/hystrix.stream");

我是否可能需要手动发布指标数据以供HystrixMetricsPoller? 或者也许我需要为我的开发环境调整一些配置?帮助表示赞赏!

4

1 回答 1

3

整理好了!原来hystrix-metrics-event-stream神器的版本是1.4.5,但版本hystrix-core是1.3.8。起初我没有发现它,因为它存储在另一个 POM 文件中。我现在在所有 hystrix 包中使用完全相同的版本,并从hystrix.streamservlet 中获取数据。

顺便说一句,我还发现hystrix-dropwizard-bundle对于大多数人来说,它看起来比从头开始或使用像 Tenacity 这样复杂的东西更容易和灵活。它包括对HystrixCodaHaleMetricsPublisher使用 Dropwizard 指标的人可能有用的支持(我们不是)。

于 2015-04-29T14:29:34.373 回答