Hystrixダッシュボード
春の雲春ブーツ仕様ベースの監視もHystrix情報を監視するための指標を提供します。これらの監視情報を参照するには、最初のpom.xmlに以下の依存関係を追加する必要があります。
< 依存性 >
< のgroupId > org.springframework.boot </ のgroupId >
< たartifactId >ばねブートスタータアクチュエータ</ たartifactId >
</ 依存 >
エンドポイントID Hystrix春クラウド監視情報が提供されhystrix.stream
、対応する監視情報を見るために、また、それを解放するために、HTTP道にエンドポイントに対応するHystrixする必要があります。明示的に指定することができます以下は、公開する必要がありますhystrix.stream
。
management.endpoints.web.exposure.include = hystrix.stream
すべてのエンドポイントは、直接出版物を指定することができます。
management.endpoints.web.exposure.include = *
リリースhystrix.stream
後に、他のエンドポイントと同様に、通過/actuator/endpointId
リリース取得したエンドポイントに対応する情報、それはすることができます/actuator/hystrix.stream
、あなたは以下のように表示することができ、Hystrixがリリースされた情報の監視にアクセスします。
あなたはまた、常に画面上に表示されて表示される場合があり
ping:
、これは、アプリケーションが始まったばかりので、しないで@HystrixCommand
、要求タグ付け方法が、また、該当する情報を開始します。
hystrix.stream
JSON形式は、データが直感的ではない直接可視です。Hystrix対応するグラフィカル・モニタリング・インターフェース、春クラウドはまた、統合を達成します。グラフィカルな制御インタフェースのpom.xmlに以下の依存関係を追加する必要があります。
< 依存性 >
< のgroupId > org.springframework.cloud </ のgroupId >
< たartifactId >ばねクラウドスタータのNetflix-hystrix-ダッシュボード</ たartifactId >
</ 依存 >
次に、コンフィギュレーション・クラスに追加する@EnableHystrixDashboard
ダッシュボードのサポートを有効にします。
@SpringBootApplication
@EnableHystrixDashboard
@EnableCircuitBreaker
パブリック クラス アプリケーション { 公共静的ボイドメイン(文字列 [] 引数){
SpringApplication 。実行(アプリケーション。クラス、引数);
}
}
経由した後/hystrix
のホームモニタリングインターフェースへのアクセスには、次のインタフェースが表示されます。
図赤マーカー部分に示すように、監視情報を収集するためのスタンドアロンのアドレスがアクセス可能http://hystrix-app:port/actuator/hystrix.stream
なフォーマット、マシンの8900ポートのアプリケーション配備の著者は、アドレス監視情報は、作成者によって収集されhttp://localhost:8900/actuator/hystrix.stream
、それは、最初の入力ボックス内に充填されていますボタンをクリックしMonitor Stream
、監視を開始するには、インターフェイスのような画面が表示されます。
このページでは、それぞれが監視見ることができ@HystrixCommand
、対応する回路ブレーカの状態を、時間がかかり、故障率、および要求ごとに、対応するスレッドプールの状態。
タービン
hystrix.stream
只能看到单个应用的监控信息。通常同一个服务会部署多份,使用hystrix.stream
查看每个单个应用的情况会比较麻烦,也不利于分析。Netflix提供了一个可以聚合多个应用的监控信息的工具,叫turbine。使用turbine时,一般会独立一个工程,在pom.xml中添加如下依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-turbine</artifactId>
</dependency>
turbine在聚合多个应用实例的监控信息是通过Eureka进行实例发现的,所以它本身将作为一个Eureka Client,还需要往pom.xml中添加Eureka Client的依赖。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
使用turbine的工程的配置类上需要加上@EnableHystrixDashboard
启用Hystrix Dashboard,加上@EnableTurbine
启用turbine支持。而此时被聚合的应用可以不再启用Hystrix Dashboard。
@SpringBootApplication
@EnableHystrixDashboard
@EnableTurbine
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
使用turbine还需要进行一些配置,如下配置指定了Eureka Server的地址,且当前应用不需要向Eureka Server进行注册。turbine.appConfig
指定了需要聚合的应用,对应于向Eureka Server注册的serviceId,即spring.application.name
指定的值,下面的配置指定的需要聚合的服务是spring1。turbine.aggregator.clusterConfig
指定了集群的名称,集群的名称只是用来把turbine.appConfig
配置的服务名称分个组,默认是服务名称的大写形式,所以我们这里配置为SPRING1。
eureka.client.serviceUrl.defaultZone=http://localhost:8089/eureka/
eureka.client.registerWithEureka=false
server.port=9000
turbine.appConfig=spring1
turbine.aggregator.clusterConfig=SPRING1
turbine.appConfig
和turbine.aggregator.clusterConfig
需要指定成一样的。
服务启动后,就可以通过/turbine.stream?cluster=SPRING1
访问到类似如下这样收集到的群集SPRING1的信息。
跟hystrix.stream
一样,上面收集到的信息是JSON格式,不直观。我们也可以在Hystrix Dashboard中查看对应的图形界面信息。通过访问/hystrix
进入Hystrix Dashboard的首页,在输入监控地址的位置输入http://localhost:9000/turbine.stream?cluster=SPRING1
,然后点击Monitor Stream
按钮进入监控页面,你会看到类似如下这样的界面。
turbine也可以同时监控多个不同的服务,监控多个不同的服务时,多个不同的服务之间以英文的逗号分隔,集群名称之间也是以英文逗号分隔。比如下面的配置,可以通过集群SPRING1监控服务spring1的相关信息,通过集群SPRING2监控服务spring2的相关信息。
turbine.appConfig=spring1,spring2
turbine.aggregator.clusterConfig=SPRING1,SPRING2
同時に、タービンは、複数のクラスタ情報を指定するときは、することができ/clusters
、より良いクラスタ情報の定義を参照してください。上記の構成情報に基づいてアクセスがhttp://localhost:9000/clusters
、以下の情報を参照してください。
クラスタ名は、デフォルトを使用するときは、アクセスturbine.streamクラスタを指定することはできません。次の設定は、デフォルトのクラスタ名を指定することができます。モニタが同時にこれら2つのサービスについての情報を監視することができたときに、以下の設定は、デフォルトされているサービスspring1とspring2クラスタ名を指定するのと同じです。
turbine.appConfig = spring1、spring2
turbine.clusterNameExpression = "デフォルト"
それはYAML構成上にある場合は、指定し
turbine.clusterNameExpression
た値を"'default'"
。
(注:この記事は、春のクラウドFinchley.SR1に基づいて書かれています)