我有一个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");
提取的指标数据?或者我可能需要为我的开发环境调整一些配置?感谢帮助!
答案 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指标的人有用(我们不是)。