无法通过hystrix-metrics-event-stream servlet

时间:2015-04-29 12:05:43

标签: java dropwizard hystrix

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

有什么我不做的事吗?我已将依赖项添加到HystrixCommand

pom.xml

我已将servlet集成到<dependency> <groupId>com.netflix.hystrix</groupId> <artifactId>hystrix-metrics-event-stream</artifactId> <version>1.4.5</version> </dependency> 中的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"); 提取的指标数据?或者我可能需要为我的开发环境调整一些配置?感谢帮助!

1 个答案:

答案 0 :(得分:3)

排序了!事实证明,hystrix-metrics-event-stream工件的版本是1.4.5,但hystrix-core的版本是1.3.8。我最初没有发现它,因为它存储在另一个POM文件中。我现在在所有hystrix软件包中使用完全相同的版本,并从hystrix.stream servlet中获取数据。

作为一个相关的方面,我还发现hystrix-dropwizard-bundle对于大多数人而言,将Dropwizard与Hystrix整合起来看起来更简单灵活,而不是从头开始或使用像Tenacity这样复杂的东西。它包括对HystrixCodaHaleMetricsPublisher的支持,这可能对使用Dropwizard指标的人有用(我们不是)。