1. 程式人生 > >SpringCloud學習筆記(5):Hystrix Dashboard視覺化監控資料

SpringCloud學習筆記(5):Hystrix Dashboard視覺化監控資料

簡介

上篇文章中講了使用Hystrix實現容錯,除此之外,Hystrix還提供了近乎實時的監控。本文將介紹如何進行服務監控以及使用Hystrix Dashboard來讓監控資料圖形化。

專案介紹

  1. sc-parent,父模組(請參照SpringCloud學習筆記(1):Eureka註冊中心)
  2. sc-eureka,註冊中心(請參照SpringCloud學習筆記(1):Eureka註冊中心)
  3. sc-consumer-hystrix-ribbon,使用Hystrix+Ribbon的消費者(請參照SpringCloud學習筆記(4):Hystrix容錯機制)
  4. sc-consumer-hystrix-feign,使用Hystrix+Feign的消費者(請參照SpringCloud學習筆記(4):Hystrix容錯機制)
  5. sc-hystrix-dashboard,用於視覺化監控資料
  6. sc-turbine,用於聚合監控資料

開啟消費者服務監控

1.修改消費者sc-consumer-hystrix-ribbon和sc-consumer-hystrix-feign的pom.xml,新增如下依賴:

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

2.修改消費者sc-consumer-hystrix-ribbon和sc-consumer-hystrix-feign的application.yml,新增如下配置:

management:
  endpoints:
    web:
      exposure:
        include: 'hystrix.stream'  #暴露hystrix.stream端點

3.測試訪問消費者sc-consumer-hystrix-feign的監控資料

依次啟動註冊中心sc-eureka和消費者sc-consumer-hystrix-feign,並訪問http://localhost:8084/actuator/hystrix.stream,結果顯示如下:

出現上圖是因為消費者服務沒有被訪問,所以這裡先呼叫下消費者服務:http://localhost:8084/feign/getBookList,然後再訪問http://localhost:8084/actuator/hystrix.stream:

可以看到監控資料是以文字的形式展示的,並不直觀,下面將介紹使用Hystrix Dashboard視覺化監控資料。

使用Hystrix Dashboard視覺化監控資料

1.在父模組下建立子模組專案sc-hystrix-dashboard,pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.cf</groupId>
    <artifactId>sc-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>sc-hystrix-dashboard</artifactId>
  
  <dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
    </dependency>
  </dependencies>
</project>

2.建立啟動類dashboard.DashBoardApplication:

package dashboard;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.hystrix.dashboard.EnableHystrixDashboard;

@SpringBootApplication
@EnableHystrixDashboard
public class DashBoardApplication {
    public static void main(String[] args) {
        SpringApplication.run(DashBoardApplication.class, args);
    }
}

3.建立application.yml:

server:
  port: 8086

spring:
  application:
    name: sc-hystrix-dashboard

4.測試

啟動sc-hystrix-dashboard後,訪問http://localhost:8086/hystrix將會顯示Hystrix Dashboard的主介面:

然後需要將消費者sc-consumer-hystrix-feign的監控資料新增到Hystrix Dashboard中。依次啟動註冊中心sc-eureka和消費者sc-consumer-hystrix-feign,將監控資料的地址輸入到Hystrix Dashboard主介面的文字框中,點選Monitor Stream,然後重複訪問消費者服務http://localhost:8084/feign/getBookList,Hystrix Dashboard顯示如下:

關於介面上指標表示的內容可以參考下圖:

使用Turbine聚合監控資料

/hystrix.stream端點只能監控到單個服務例項,如果需要檢視其他服務例項監控資訊則需要在Hystrix Dashboard切換想要監控的地址。通過Turbine可以將所有/hystrix.stream端點的資料聚合到一個組合的/turbine.stream中,然後在Hystrix Dashboard中就可以檢視所有服務的監控資訊。

1.修改消費者sc-consumer-hystrix-ribbon和sc-consumer-hystrix-feign的application.yml,將registerWithEureka設為true或者直接去掉該配置(預設為true)。因為Turbine需要從Eureka上獲取服務的地址資訊,然後才能獲取到服務的監控資料,所以消費者服務需要到Eureka註冊中心註冊。

eureka:
  client:
    #registerWithEureka: false 
    serviceUrl:
      defaultZone: http://localhost:8080/eureka/  

2.在父模組下建立子模組專案sc-turbine,pom.xml:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>com.cf</groupId>
    <artifactId>sc-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
  </parent>
  <artifactId>sc-turbine</artifactId>
  
  <dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-turbine</artifactId>
    </dependency>
  </dependencies>
</project>

3.建立啟動類turbine.TurbineApplication:

package turbine;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.turbine.EnableTurbine;

@SpringBootApplication
@EnableTurbine
public class TurbineApplication {
    public static void main(String[] args) {
        SpringApplication.run(TurbineApplication.class, args);
    }
}

4.建立application.yml:

server:
  port: 8087

spring:
  application:
    name: sc-turbine
    
eureka:
  client:
    registerWithEureka: false
    serviceUrl:
      defaultZone: http://localhost:8080/eureka/    

turbine:
  appConfig: sc-consumer-hystrix-ribbon,sc-consumer-hystrix-feign #指定要監控的服務名
  clusterNameExpression: "'default'"

5.測試

依次啟動註冊中心sc-eureka、消費者sc-consumer-hystrix-feign、消費者sc-consumer-hystrix-ribbon、sc-turbine、sc-hystrix-dashboard,訪問http://localhost:8086/hystrix進入到Hystrix Dashboard主介面中,然後在Hystrix Dashboard主介面的文字框中輸入http://localhost:8087/turbine.stream,點選Monitor Stream進入監控介面,重複訪問兩個消費者服務,監控介面上將顯示兩個消費者的監控資訊:

相關推薦

SpringCloud學習筆記(5)Hystrix Dashboard視覺監控資料

簡介 上篇文章中講了使用Hystrix實現容錯,除此之外,Hystrix還提供了近乎實時的監控。本文將介紹如何進行服務監控以及使用Hystrix Dashboard來讓監控資料圖形化。 專案介紹 sc-parent,父模組(請參照SpringCloud學習筆記(1):Eureka註冊中心) sc-eurek

微服務springcloud—使用Hystrix Dashboard視覺監控資料

使用Hystrix Dashboard視覺化監控資料 前面討論了Hystrix的監控,但訪問/actuator/hystrix.stream端點獲得的資料都是以文字形式展示的。很難通過這些資料,一眼看出系統的執行狀態。 可使用Hystrix Dashboard,從讓監控資料圖形化、視覺化

SpringCloud學習筆記(4)Hystrix容錯機制

簡介 在微服務架構中,微服務之間的依賴關係錯綜複雜,難免的某些服務會出現故障,導致服務呼叫方出現遠端排程的執行緒阻塞。在高負載的場景下,如果不做任何處理,可能會引起級聯故障,導致服務呼叫方的資源耗盡甚至整個系統奔潰。Hystrix是一個由Netflix開源的一個延遲和容錯庫,它通過新增延遲容忍和容錯邏輯來幫助

視覺學習筆記5形狀,大小和其他工具

表示資料的其他方式 現在你應該能夠在視覺化圖表中熟練地使用顏色來表示值了。有時候,除了顏色之外,你需要顯示更多的資料。你可以使用不同的表示方式,例如在散點圖中使用不同形狀和大小的標記。下面我將介紹如何使用這些工具在一個圖表中展示更多的資料。

hibernate框架學習筆記5緩存

很好 close nts oid img 關閉資源 次方 兩個 res 緩存不止存在與程序中,電腦硬件乃至於生活中都存在緩存 目的:提高效率 比如IO流讀寫字節,如果沒有緩存,讀一字節寫一字節,效率低下 hibernate中的一級緩存:提高操作數據庫的效率 示例:

struts2框架學習筆記5OGNL表達式

closed 在一起 放置 nbsp lap src list 對象 pan OGNL取值範圍分兩部分,root、Context兩部分 可以放置任何對象作為ROOT,CONTEXT中必須是Map鍵值對 示例: 準備工作: public void fun1() th

Kali學習筆記5TCPDUMP詳細使用方法

CA 自己 ring int 十六 一行 全部 kali info Kali自帶Wireshark,但一般的Linux系統是不帶的,需要自行下載,並且過程略復雜 而純字符界面的Linux系統無法使用Wireshark 但是,所有Linux系統都會安裝TCPDUMP:一種基於

Dubbo學習筆記5Dubbo整體框架分析

什麽 資源 AD 文本文件 font ren factor exporter 服務提供者 Dubbo的分層架構 本文將簡單介紹Dubbo的分層架構設計,如下圖是Dubbo官方的整體架構圖: Dubbo官方提供的該架構圖很復雜,一開始我們沒必要深入細節,下面我們簡單介紹

Less學習筆記5匹配模式

匹配模式:類似於JS中的if語句,但不完全是,滿足一定條件後才能匹配 比如:用CSS去畫一個三角 <div class='triangle'></div> .triangle{     width: 0;    &

springcloud學習筆記利用Feign編寫客戶消費端

Feign 在上一篇筆記中,我們在消費者端使用restemplate的方式遠端消費服務,這樣寫雖然可以,但是卻與我們其它的程式碼有點格格不入,那麼通過feign,一個http客戶端庫,可以做到使用HTTP請求遠端服務時能與呼叫本地方法一樣的編碼體驗,與我們的客戶端程式碼看起來融為一體。

springcloud學習筆記服務提供、消費與ribbon

在學習筆記一里,我們簡單實現了一個註冊中心,我們就可以在上面進行服務的註冊與訂閱消費。 編寫服務,進行註冊 同樣,我們可以在STS中右鍵New->Spring Starter Project ,填寫相應內容->點選next 選擇需要的依賴包,我們這裡由於是構建一個服務提供

springcloud學習筆記eureka服務註冊與發現

springcloud可以方便的幫我們完成微服務架構,它擁有多個子專案,可以去官網簡單看下介紹。 其中component下的代表著現有的子專案,本次所記錄的eureka就是其中spring-cloud-netflix裡的一個模組。 eureka在我們微服務架構中實現的就是服務發現與

Deep Learning 學習筆記5神經網路彙總

本篇文章整理自FJODOR VAN VEEN的論文:The Neural Network Zoo。本文介紹了神經網路大家族,但不是所有的神經網路都能涵蓋,畢竟新的網路結構在不斷被髮展出來。以下是神經網路的圖譜。 介紹神經網路之前,先介紹神經元的分類,這部分內容來自博友的

SpringCloud學習筆記(一)搭建Eureka服務和叢集

環境版本:Springboot:2.1.0                   Springcloud:Finchley.SR2 (一)搭建eureka服務註冊中心 1、建立springboot專案       建立springboot專案直接在官網https://s

python學習筆記5列表-元組-集合-字典

list列表 一組有順序的資料的組合,可進行增刪改查 賦值操作 ls = list() ,ls = [] 下標從0開始,最後一個數可使用-1訪問,依次類推 可使用其切片操作[:],反序排列[::-1] 進行切片和copy()後的新list的ID原id不一致

LDA主題模型學習筆記5C原始碼理解

1,說明 本文對LDA原始論文的作者所提供的C程式碼中LDA的主要邏輯部分做註釋,原始碼可在這裡下載到:https://github.com/Blei-Lab/lda-c 這份程式碼實現論文《Latent Dirichlet Allocation》中介紹的LDA模型,用變分

機器學習筆記(5)多類邏輯迴歸-手動新增隱藏層

from mxnet import gluon from mxnet import ndarray as nd import matplotlib.pyplot as plt import mxnet as mx from mxnet import autograd def transfo

Android學習筆記5探究活動2

《第一行程式碼——Android》郭霖著 在活動中使用Toast Toast是Android系統提供的一種非常好的提醒方式,在程式中可以使用它將一些短小的資訊通知給使用者,這些資訊會在一段時間後自動消失,並且不會佔用任何螢幕空間,我們現在就嘗試一下如何在活動中使用T

【深度學習目標檢測】RCNN學習筆記(5)faster rcnn

轉載:http://blog.csdn.net/u011534057/article/details/51247371 reference link:http://blog.csdn.net/shenxiaolu1984/article/details/51152614

muduo網路庫學習筆記(5)執行緒池的實現

瞭解生產者-消費者問題 生產者-消費者問題也被稱為有界緩衝區問題,兩個程序/執行緒共享一個公共的固定大小的緩衝區。其中一個是生產者,將資訊放入緩衝區;另一個是消費者,從緩衝區中取出資訊。 問題在於當緩衝區已滿,而此時生產者還想向其中放入一個新的資料項的情況。