spring-cloud-hystrix-dasboard服務調用監控
阿新 • • 發佈:2019-04-23
actor gin 可視化 集群 輸出信息 圖形化監控 圖形化 項目 type
除了隔離依賴服務的調用以外,hystrix還提供了準實時的調用監控(hystrix dashboard),hystrxi會持續的記錄所有通過hyxtrix發起的請求的執行信息,並以統計報表和圖形的形式展示給用戶,包括每秒執行多少請求,多少成功,多少失敗等。Netflix通過hystrix-metrics-event-stream項目實現了對以上指標的監控。SpringCloud也提供了hystrix dashboard的整合,對監控內容轉化成可視化界面。
Spring Cloud Hystrix Dashboard只是spring cloud基於Hystrix Dashboard,將實時監控數據通過頁面呈現出來。Spring Cloud Hystrix Dashboard的底層原理是間隔一定時間去“Ping”目標服務,返回的結果是最新的監控數據,最後將數據顯示出來。
1.創建一個boot項目,修改pom文件
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <spring-cloud.version>Finchley.SR3</spring-cloud.version> </properties> <dependencyManagement> <dependencies> <dependency> <!-- SpringCloud 所有子項目 版本集中管理. 統一所有SpringCloud依賴項目的版本依賴--> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix</artifactId> <version>1.4.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId> <version>1.4.6.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> </dependencies> <build> <plugins> <plugin><!-- SpringBoot 項目打jar包的Maven插件 --> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
2.修改application.yml
server: port: 9005 spring: application: name: hystrix-dasboard #服務註冊到Eureka上使用的名稱 eureka: client: service-url: # 集群情況下如下,如果是單機版,只需要配置單機版Eureka地址 defaultZone: http://localhost:7001/eureka/,http://localhost:7002/eureka/ instance: instance-id: hystrix-dasboard-9005 prefer-ip-address: true #訪問路徑顯示IP地址 info: # 在Eureka上點擊服務時會跳轉到個404頁面,可配置這裏讓他跳轉到服務簡介的一個頁面,信息如下配置 app.name: wuzz company.name: www.wuzz.com build.artifactId: hystrix-dasboard build.version: 1.0
3.修改啟動類
@SpringBootApplication @EnableHystrixDashboard //開啟儀表盤圖形化監控的註解 public class HystrixDasboardApp { private final static Logger log = LoggerFactory.getLogger(HystrixDasboardApp.class); public static void main(String[] args) { SpringApplication.run(HystrixDasboardApp.class,args); log.info("服務啟動成功"); } }
4.啟動本微服務 訪問路徑為 http://localhost:9005/hystrix,看到以下界面,說明儀表盤配置成功
5.接著啟動幾個Eureka集群,攜帶有Hystrix(監控)服務熔斷的微服務服務提供者。我這裏端口為 8003 ,當我們訪問http://localhost:8003/actuator/hystrix.stream 會出現以下界面,
如果是一直處於ping:的狀態,是因為沒有服務調用,寫一個測試接口訪問一下會出現以下類似信息
如上圖,即服務監控的輸出信息,但是我們需要以一種可視化界面的方式去瀏覽。接下去我們需要配置一下基本信息,以查看可視化的界面
點擊 Monitor Stream 會進入以下界面
實心圓:共有兩種含義,他通過顏色的變化代表了實例的健康程度,它的健康程度從綠<黃<橙<紅遞減,該實心圓除了顏色的變化之外,它的大小也會根據實例的請求流量發生變化。流量越大該實心圓就越大。所以通過該實心圓,就可以在大量的實例中快速發現故障實例和高壓力實例
對於可視化監控界面(上圖) 7 色 1 圈 1 線的含義如下圖:
至此就配置好了儀表盤供用戶查看服務實例的健康狀況
spring-cloud-hystrix-dasboard服務調用監控