下面咱們基於以前的示例來結合Hystrix Dashboard實現Hystrix指標數據的可視化面板,這裏咱們將用到下以前實現的幾個應用,包括:html
因爲eureka-consumer-ribbon-hystrix項目中的/consumer
接口實現使用了@HystrixCommand
修飾,因此這個接口的調用狀況會被Hystrix記錄下來,以用來給斷路器和Hystrix Dashboard使用。斷路器咱們在上一篇中已經介紹過了,下面咱們來具體說說Hystrix Dashboard的構建。spring
在Spring Cloud中構建一個Hystrix Dashboard很是簡單,只須要下面四步:服務器
<parent> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-parent</artifactId> <version>Dalston.SR1</version> <relativePath /> </parent> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies> |
@EnableHystrixDashboard
,啓用Hystrix Dashboard功能。 @EnableHystrixDashboard @SpringCloudApplication public class HystrixDashboardApplication { public static void main(String[] args) { SpringApplication.run(HystrixDashboardApplication.class, args); } } |
application.properties
配置文件,好比:選擇一個未被佔用的端口等,此步非必須。 spring.application.name=hystrix-dashboard server.port=1301 |
到這裏咱們已經完成了基本配置,接下來咱們能夠啓動該應用,並訪問:http://localhost:1301/hystrix
,咱們能夠看到以下頁面:網絡
這是Hystrix Dashboard的監控首頁,該頁面中並無具體的監控信息。從頁面的文字內容中咱們能夠知道,Hystrix Dashboard共支持三種不一樣的監控方式,依次爲:app
http://turbine-hostname:port/turbine.stream
開啓,實現對默認集羣的監控。http://turbine-hostname:port/turbine.stream?cluster=[clusterName]
開啓,實現對clusterName集羣的監控。http://hystrix-app:port/hystrix.stream
開啓,實現對具體某個服務實例的監控。前二者都對集羣的監控,須要整合Turbine才能實現,這部份內容咱們將在下一篇中作詳細介紹。在本節中,咱們主要實現對單個服務實例的監控,因此這裏咱們先來實現單個服務實例的監控。spring-boot
既然Hystrix Dashboard監控單實例節點須要經過訪問實例的/hystrix.stream
接口來實現,天然咱們須要爲服務實例添加這個端點,而添加該功能的步驟也一樣簡單,只須要下面兩步:post
pom.xml
中的dependencies
節點中新增spring-boot-starter-actuator
監控模塊以開啓監控相關的端點,並確保已經引入斷路器的依賴spring-cloud-starter-hystrix
: <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> |
@EnableCircuitBreaker
或@EnableHystrix
註解,開啓了斷路器功能。到這裏已經完成了全部的配置,咱們能夠在Hystrix Dashboard的首頁輸入http://localhost:2101/hystrix.stream
,已啓動對「eureka-consumer-ribbon-hystrix」的監控,點擊「Monitor Stream」按鈕,此時咱們能夠看到以下頁面:ui
在對該頁面介紹前,咱們先看看在首頁中咱們尚未介紹的兩外兩個參數:spa
Delay
:該參數用來控制服務器上輪詢監控信息的延遲時間,默認爲2000毫秒,咱們能夠經過配置該屬性來下降客戶端的網絡和CPU消耗。Title
:該參數對應了上圖頭部標題Hystrix Stream以後的內容,默認會使用具體監控實例的URL,咱們能夠經過配置該信息來展現更合適的標題。源碼來源