【问题标题】:Unable to view Hystrix metrics in Dropwizard app via hystrix-metrics-event-stream servlet无法通过 hystrix-metrics-event-stream servlet 在 Dropwizard 应用程序中查看 Hystrix 指标
【发布时间】:2015-07-08 17:03:18
【问题描述】:

我有一个 Dropwizard 0.8.1 应用程序,我添加了一些 HystrixCommand 类来调用各种外部服务。我现在想可视化与调用这些服务相关的统计信息,但我似乎无法让我的应用程序与Hystrix Dashboard 配合得很好。所有文档似乎都暗示,如果我让hystrix-metrics-event-stream servlet 在我的应用程序中工作,那么一切都应该正常工作,但是当我直接调用我的 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 集成到 App.java 中的 Dropwizard 中:

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

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

【问题讨论】:

  • FWIW 以防万一有人提出建议,我已经查看了 Yammer 的 Tenacity,但对于我的需求来说,它似乎过于复杂,并且不应该仅仅将 Dropwizard 与 Hystrix 一起使用,所以我想在不集成(其他)大型第三方库的情况下解决这个问题。

标签: java dropwizard hystrix


【解决方案1】:

排序!原来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 指标的人有用(我们不是)。

【讨论】:

    猜你喜欢
    • 2017-01-30
    • 2016-04-26
    • 2019-02-07
    • 2016-03-22
    • 1970-01-01
    • 2018-12-12
    • 2016-12-08
    • 2016-09-29
    • 2020-01-10
    相关资源
    最近更新 更多