1. 程式人生 > >spring-cloud-hystrix-dasboard服務調用監控

spring-cloud-hystrix-dasboard服務調用監控

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服務調用監控