Apache Camelでサーキットブレーカーパターン(Circuit Breaker Pattern)その2(Hystrix Dashboardを試す)


はじめに

前回の記事 Apache Camelでサーキットブレーカーパターンで、Hystrixを試してみました。
Hystrixではサーキットの状態をグラフィカルに表示できるDashboardがあるので、今回はそれを動かしてみます。

Apache+Spring Bootの組み合わせではHystrix DashboardをSpring Cloud Netflixコンポーネントを使用して動かせるようです。
ただし、今回はSpring Bootを使用しないので、スタンドアロンアプリケーションでHystrix Dashboardを動かしてみます。

アプリケーションでHyrixのMetricsを出力する

hystrix-metrics-event-streamを使用して、アプリケーションからHyrixのMetricsを出力できるようにします。

まずは、以下のライブラリを追加します(Mavenの場合)。

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

アプリケーションにjettyを組み込み、hystrix-metrics-event-streamを利用できるようにします。
URLは「http://localhost:8090/hystrix.stream」にしています。

import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;

import com.netflix.hystrix.contrib.metrics.eventstream.HystrixMetricsStreamServlet;

省略

            Server server = new Server(8090);
            ServletContextHandler servletContext = new ServletContextHandler(ServletContextHandler.NO_SESSIONS);
            server.setHandler(servletContext);
            final HystrixMetricsStreamServlet servlet = new HystrixMetricsStreamServlet();
            final ServletHolder holder = new ServletHolder(servlet);
            servletContext.addServlet(holder, "/hystrix.stream");
            server.start();

スタンドアロン版のHystrix Dashboardのダウンロードと起動

まず、以下のページにアクセスし、Hystrix Dashboardスタンドアロン版のjarファイルをダウンロードします。

2019年1月時点では1.5.6が最新バージョンでした。
ダウンロードしたファイルは"standalone-hystrix-dashboard-1.5.6-all.jar"になります。

ダウンロード後、以下のコマンドを実行して、Hystrix Dashboardを起動します。

>java -jar standalone-hystrix-dashboard-1.5.6-all.jar
21:13:03.272 [vert.x-eventloop-thread-0] INFO  c.g.k.h.c.s.d.HystrixDashboardVerticle - Initializing the HystrixDashboardVerticle instance 1
21:13:03.571 [vert.x-eventloop-thread-0] INFO  c.g.k.h.c.s.d.HystrixDashboardVerticle - Compression support enabled: true
21:13:03.901 [vert.x-eventloop-thread-0] INFO  c.g.k.h.c.s.d.HystrixDashboardVerticle - Listening on port: 7979
21:13:03.901 [vert.x-eventloop-thread-0] INFO  c.g.k.h.c.s.d.HystrixDashboardVerticle - Access the dashboard in your browser: http://localhost:7979/hystrix-dashboard/
21:13:03.902 [vert.x-eventloop-thread-1] INFO  i.v.c.i.l.c.VertxIsolatedDeployer - Succeeded in deploying verticle

Hystrix DashboardにアクセスするためのURLは以下になります。

アクセスすると次の画面が表示されます。

画面が表示された後、「Eureka Application~」という文章が表示された下のテキストボックスに、「http://localhost:8090/hystrix.stream」と入力し、「Add Stream」ボタンをクリックします。
次に「Monitor Streams」ボタンをクリックすると、以下の画面に遷移します。

エラー率が50%を超えると、「Circuit」がOpenになるように設定しています。
グラフの読み方は以下のとおりです。

参考