成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

spring cloud圖形化dashboard是如何實(shí)現(xiàn)指標(biāo)的收集展示的

andycall / 1190人閱讀

摘要:圖形化是如何實(shí)現(xiàn)指標(biāo)的收集展示的圖形化界面入口說明端口是由配置文件來指定的,可以修改。圖形化的界面其實(shí)就是從這個(gè)獲取數(shù)據(jù),并展示的怎么把流數(shù)據(jù)返回省略代碼省略代碼其實(shí)就是通過去獲取響應(yīng)結(jié)果,然后不斷的輸出到前臺(tái)頁面。

spring cloud圖形化dashboard是如何實(shí)現(xiàn)指標(biāo)的收集展示的 1、dashboard圖形化界面入口

http://localhost:10000/hystrix.stream

說明:端口是由配置文件server.port=10000來指定的,可以修改。

打開后可以看到如下的界面

輸入需要監(jiān)控的集群,然后點(diǎn)擊Monitor Stream按鈕,進(jìn)行集群監(jiān)控
這邊假設(shè)輸入
http://localhost:10000/turbine.stream?cluster=default
可以看到下面的界面

注:如果看到的是空白頁面,需要訪問一下開啟了@HystrixCommand注解的rest方法,本文中有兩個(gè)方法,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是如何實(shí)現(xiàn)監(jiān)控?cái)?shù)據(jù)的獲取的。

我們通過瀏覽器工具打開網(wǎng)絡(luò)監(jiān)控,或者使用F12快捷鍵查看監(jiān)控的url。
如下:

url:
http://localhost:10000/proxy.stream?origin=http%3A%2F%2Flocalhost%3A10000%2Fturbine.stream%3Fcluster%3Ddefault

我們看到,它是通過proxy.stream來獲取數(shù)據(jù),有一個(gè)origin參數(shù),就是前面我們輸入的想要監(jiān)控的那個(gè)url地址,即【http://localhost:10000/turbine.stream?cluster=default】。proxy.stream其實(shí)對(duì)應(yīng)的是一個(gè)servlet。
查看源碼:
HystrixDashboardConfiguration可以看到它有一個(gè)內(nèi)部類ProxyStreamServlet就是用來處理這個(gè)url的。
關(guān)鍵源碼如下:

這個(gè)servlet其實(shí)就是通過origin來獲取數(shù)據(jù),如果我們直接訪問origin所對(duì)應(yīng)的地址,可以看到如下的數(shù)據(jù),像流一樣源源不斷的打印出來。

圖形化的界面其實(shí)就是從這個(gè)servlet獲取數(shù)據(jù),并展示的

3、servlet怎么把流數(shù)據(jù)返回
        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其實(shí)就是通過url去獲取響應(yīng)結(jié)果,然后不斷的輸出到前臺(tái)頁面。

4、前臺(tái)界面怎么展示不斷響應(yīng)回來的流數(shù)據(jù)呢

這邊主要用到了HTML5的一個(gè)對(duì)象EventSource,可以獲取到這個(gè)數(shù)據(jù)。
注意: EventSource不支持IE瀏覽器,這邊使用谷歌瀏覽器

我們還是通過瀏覽器工具,查看圖形化界面的使用到j(luò)s腳本。
如下:

EventSource對(duì)象可以對(duì)url進(jìn)行監(jiān)聽,并注冊(cè)響應(yīng)函數(shù)。這里不進(jìn)行展開,有興趣的同學(xué)可以詳細(xì)的閱讀里面的腳本。

5、總結(jié)

turbine收集的數(shù)據(jù)是一種json格式的數(shù)據(jù),而且像流一樣不斷輸出。所以我們需要借助圖形化工具來展示。而圖形化工具的數(shù)據(jù)訂閱我們通過上面的分析已經(jīng)知道,其實(shí)他就是通過servlet來訪問turbine的鏈接來獲取數(shù)據(jù)并展現(xiàn)的。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68756.html

相關(guān)文章

  • 使用turbine收集hystrix指標(biāo)

    使用turbine收集hystrix指標(biāo) 1、pom中引入對(duì)turbin的依賴,并增加dashboard圖形界面的展示 org.springframework.boot spring-boot-starter-actuator org.springframework.cloud spring-c...

    piglei 評(píng)論0 收藏0
  • Dubbo Cloud Native 之路實(shí)踐與思考

    摘要:可簡單地認(rèn)為它是的擴(kuò)展,負(fù)載均衡自然成為不可或缺的特性。是基于開發(fā)的服務(wù)代理組件,在使用場景中,它與和整合,打造具備服務(wù)動(dòng)態(tài)更新和負(fù)載均衡能力的服務(wù)網(wǎng)關(guān)。類似的特性在項(xiàng)目也有體現(xiàn),它是另一種高性能代理的方案,提供服務(wù)發(fā)現(xiàn)健康和負(fù)載均衡。 摘要: Cloud Native 應(yīng)用架構(gòu)隨著云技術(shù)的發(fā)展受到業(yè)界特別重視和關(guān)注,尤其是 CNCF(Cloud Native Computing Fo...

    niceforbear 評(píng)論0 收藏0
  • Docker容器可視監(jiān)控中心搭建

    showImg(https://segmentfault.com/img/remote/1460000014421849); 概述 一個(gè)宿主機(jī)上可以運(yùn)行多個(gè)容器化應(yīng)用,容器化應(yīng)用運(yùn)行于宿主機(jī)上,我們需要知道該容器的運(yùn)行情況,包括 CPU使用率、內(nèi)存占用、網(wǎng)絡(luò)狀況以及磁盤空間等等一系列信息,而且這些信息隨時(shí)間變化,我們稱其為時(shí)序數(shù)據(jù),本文將實(shí)操 如何搭建一個(gè)可視化的監(jiān)控中心 來收集這些承載著具體應(yīng)...

    yunhao 評(píng)論0 收藏0
  • Spring Cloud 參考文檔(Hystrix超時(shí)和Ribbon客戶端)

    摘要:要運(yùn)行儀表板,請(qǐng)使用注解主類,然后訪問并將儀表板指向客戶端應(yīng)用程序中的單個(gè)實(shí)例的端點(diǎn)。連接到使用的端點(diǎn)時(shí),必須信任服務(wù)器使用的證書,如果證書不受信任,則必須將證書導(dǎo)入,以便儀表板成功連接到流端點(diǎn)。 Hystrix超時(shí)和Ribbon客戶端 使用包裝Ribbon客戶端的Hystrix命令時(shí),要確保將Hystrix超時(shí)配置為長于配置的Ribbon超時(shí),包括可能進(jìn)行的任何可能的重試,例如,如果...

    pf_miles 評(píng)論0 收藏0
  • 這么多監(jiān)控組件,總有一款適合你

    摘要:典型實(shí)現(xiàn)不同的監(jiān)控模塊,側(cè)重于不同領(lǐng)域,有著不同的職責(zé)。指標(biāo)收集方面,支持多樣化的組件將被優(yōu)先下使用。以上談了這么多,僅僅是聊了一下收集方面而已。 更多文章,請(qǐng)移步微信公眾號(hào)《小姐姐味道》 mp原文 https://mp.weixin.qq.com/s?__...監(jiān)控是分布式系統(tǒng)的必備組件,能夠起到提前預(yù)警、問題排查、評(píng)估決策等功效,乃行走江湖、居家必備之良品。 監(jiān)控系統(tǒng)概要 功能劃分...

    simon_chen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<