摘要:圖形化是如何實現指標的收集展示的圖形化界面入口說明端口是由配置文件來指定的,可以修改。圖形化的界面其實就是從這個獲取數據,并展示的怎么把流數據返回省略代碼省略代碼其實就是通過去獲取響應結果,然后不斷的輸出到前臺頁面。
spring cloud圖形化dashboard是如何實現指標的收集展示的 1、dashboard圖形化界面入口
http://localhost:10000/hystrix.stream
說明:端口是由配置文件server.port=10000來指定的,可以修改。
打開后可以看到如下的界面
輸入需要監控的集群,然后點擊Monitor Stream按鈕,進行集群監控
這邊假設輸入
http://localhost:10000/turbine.stream?cluster=default
可以看到下面的界面
注:如果看到的是空白頁面,需要訪問一下開啟了@HystrixCommand注解的rest方法,本文中有兩個方法,hello、hellosleep方法。
@GetMapping("/hello") @HystrixCommand(fallbackMethod = "helloFallback") public String hello() { return "provide hello world"; }
@GetMapping("/hellosleep") @HystrixCommand(fallbackMethod = "helloexFallback") public String hellosleep() throws InterruptedException { int i = 2000; TimeUnit.MILLISECONDS.sleep(i); return "provide hellosleep world!"; }2、dashboard是如何實現監控數據的獲取的。
我們通過瀏覽器工具打開網絡監控,或者使用F12快捷鍵查看監控的url。
如下:
url:
http://localhost:10000/proxy.stream?origin=http%3A%2F%2Flocalhost%3A10000%2Fturbine.stream%3Fcluster%3Ddefault
我們看到,它是通過proxy.stream來獲取數據,有一個origin參數,就是前面我們輸入的想要監控的那個url地址,即【http://localhost:10000/turbine.stream?cluster=default】。proxy.stream其實對應的是一個servlet。
查看源碼:
HystrixDashboardConfiguration可以看到它有一個內部類ProxyStreamServlet就是用來處理這個url的。
關鍵源碼如下:
這個servlet其實就是通過origin來獲取數據,如果我們直接訪問origin所對應的地址,可以看到如下的數據,像流一樣源源不斷的打印出來。
圖形化的界面其實就是從這個servlet獲取數據,并展示的
3、servlet怎么把流數據返回httpget = new HttpGet(proxyUrl); HttpClient client = ProxyConnectionManager.httpClient; HttpResponse httpResponse = client.execute(httpget); int statusCode = httpResponse.getStatusLine().getStatusCode(); if (statusCode == HttpStatus.SC_OK) { is = httpResponse.getEntity().getContent(); //省略代碼... OutputStream os = response.getOutputStream(); int b = -1; while ((b = is.read()) != -1) { try { os.write(b); if (b == 10 /** flush buffer on line feed */ ) { os.flush(); } } catch (Exception ex) { //省略代碼... } } }
servlet其實就是通過url去獲取響應結果,然后不斷的輸出到前臺頁面。
4、前臺界面怎么展示不斷響應回來的流數據呢這邊主要用到了HTML5的一個對象EventSource,可以獲取到這個數據。
注意: EventSource不支持IE瀏覽器,這邊使用谷歌瀏覽器
我們還是通過瀏覽器工具,查看圖形化界面的使用到js腳本。
如下:
EventSource對象可以對url進行監聽,并注冊響應函數。這里不進行展開,有興趣的同學可以詳細的閱讀里面的腳本。
5、總結turbine收集的數據是一種json格式的數據,而且像流一樣不斷輸出。所以我們需要借助圖形化工具來展示。而圖形化工具的數據訂閱我們通過上面的分析已經知道,其實他就是通過servlet來訪問turbine的鏈接來獲取數據并展現的。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/68756.html
使用turbine收集hystrix指標 1、pom中引入對turbin的依賴,并增加dashboard圖形界面的展示 org.springframework.boot spring-boot-starter-actuator org.springframework.cloud spring-c...
摘要:可簡單地認為它是的擴展,負載均衡自然成為不可或缺的特性。是基于開發的服務代理組件,在使用場景中,它與和整合,打造具備服務動態更新和負載均衡能力的服務網關。類似的特性在項目也有體現,它是另一種高性能代理的方案,提供服務發現健康和負載均衡。 摘要: Cloud Native 應用架構隨著云技術的發展受到業界特別重視和關注,尤其是 CNCF(Cloud Native Computing Fo...
showImg(https://segmentfault.com/img/remote/1460000014421849); 概述 一個宿主機上可以運行多個容器化應用,容器化應用運行于宿主機上,我們需要知道該容器的運行情況,包括 CPU使用率、內存占用、網絡狀況以及磁盤空間等等一系列信息,而且這些信息隨時間變化,我們稱其為時序數據,本文將實操 如何搭建一個可視化的監控中心 來收集這些承載著具體應...
摘要:要運行儀表板,請使用注解主類,然后訪問并將儀表板指向客戶端應用程序中的單個實例的端點。連接到使用的端點時,必須信任服務器使用的證書,如果證書不受信任,則必須將證書導入,以便儀表板成功連接到流端點。 Hystrix超時和Ribbon客戶端 使用包裝Ribbon客戶端的Hystrix命令時,要確保將Hystrix超時配置為長于配置的Ribbon超時,包括可能進行的任何可能的重試,例如,如果...
摘要:典型實現不同的監控模塊,側重于不同領域,有著不同的職責。指標收集方面,支持多樣化的組件將被優先下使用。以上談了這么多,僅僅是聊了一下收集方面而已。 更多文章,請移步微信公眾號《小姐姐味道》 mp原文 https://mp.weixin.qq.com/s?__...監控是分布式系統的必備組件,能夠起到提前預警、問題排查、評估決策等功效,乃行走江湖、居家必備之良品。 監控系統概要 功能劃分...
閱讀 1207·2021-09-03 10:44
閱讀 603·2019-08-30 13:13
閱讀 2796·2019-08-30 13:11
閱讀 1967·2019-08-30 12:59
閱讀 1034·2019-08-29 15:32
閱讀 1595·2019-08-29 15:25
閱讀 987·2019-08-29 12:24
閱讀 1277·2019-08-27 10:58