在智能運維中,應(yīng)用服務(wù)所使用的組件及JAR包等相關(guān)信息非常重要,這些信息能夠清晰地描繪一個應(yīng)用服務(wù)的骨架,我們稱這些信息為應(yīng)用畫像。在UAVStack中,中間件增強框架(MOF)下的InterceptFramework可以在應(yīng)用啟動過程中獲取畫像信息。本文主要介紹InterceptFramework的架構(gòu)原理和在此基礎(chǔ)上實現(xiàn)的應(yīng)用畫像數(shù)據(jù)采集與存儲。
創(chuàng)新互聯(lián)公司2013年至今,先為永清等服務(wù)建站,永清等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為永清企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。在應(yīng)用啟動過程中的特定生命周期,之前植入的代碼攔截邏輯開始執(zhí)行InterceptSupport的doIntercept方法,遍歷已注冊的Listener監(jiān)聽器。每個監(jiān)聽器都繼承自InterceptEventListener類。不同的子Listener對相應(yīng)類型的畫像采集處理:AppProfilingListener負責(zé)監(jiān)聽所有服務(wù)畫像事件,AppFrkHookFactoryListener負責(zé)監(jiān)聽客戶端畫像事件。
畫像數(shù)據(jù)即靜態(tài)數(shù)據(jù),是在進程啟動時即可得到的數(shù)據(jù),包括操作系統(tǒng)相關(guān)的信息、程序相關(guān)的信息、程序啟動后相關(guān)的初始化信息。
畫像數(shù)據(jù)主要包括服務(wù)畫像、溯源感知畫像和客戶端畫像三部分,如上圖所示。以下分別從這三個方面介紹畫像采集:
服務(wù)畫像描述了服務(wù)本體的信息,包括應(yīng)用唯一標(biāo)識(AppID)、服務(wù)名(Service ID)、服務(wù)實例的URI、服務(wù)接口的URI、服務(wù)接口的元數(shù)據(jù)(類、方法、入?yún)⒊鰠ⅰ⒆⒔?、部署描述符)?/p>
以Tomcat為例,應(yīng)用的啟動過程需要經(jīng)過StandardContext的start方法。我們可以在此方法的最后植入代碼邏輯進行攔截,通過攔截可以獲取到以下信息:
服務(wù)畫像除了獲取以上信息外,還獲取應(yīng)用的日志路徑和所用JAR包等信息。
溯源畫像采集主要借助HTTP協(xié)議Header中的字段進行溯源,通過中間件劫持技術(shù)攔截Tomcat中StandardEngineValve的Invoke方法,獲取溯源數(shù)據(jù)。
收集的數(shù)據(jù)有以下幾種:
客戶端畫像通過對一系列常用中間件客戶端進行劫持實現(xiàn),目前已支持同步/異步http、數(shù)據(jù)庫jdbc、redis(jedis,aredis,lettuce)、mongodb、rocketmq/rabbitmq/Kafka、ESClient等。
劫持通過javaassist字節(jié)碼改寫、動態(tài)代理等AOP技術(shù),在客戶端調(diào)用代碼中嵌入特定處理邏輯,獲取調(diào)用相關(guān)的信息,如調(diào)用地址、調(diào)用協(xié)議、調(diào)用結(jié)果等。
畫像數(shù)據(jù)基于調(diào)用地址、訪問協(xié)議、調(diào)用結(jié)果的特征提取來確定目標(biāo)服務(wù)。
1)調(diào)用地址:以類URI格式表示
2)訪問協(xié)議:某種訪問動作。例如HTTP的POST、SQL插入、發(fā)送/訂閱消息、Redis的hgethashall、Mongo的Collection操作等。
3)訪問結(jié)果特征:服務(wù)的基礎(chǔ)棧類型、是否集群,例如Nginx、Tomcat、Apache等。
與服務(wù)畫像不同的是,客戶端畫像發(fā)生在具體客戶端調(diào)用過程中,并非在應(yīng)用的啟動環(huán)節(jié)。
畫像存儲按以下結(jié)構(gòu)分層存儲:
DataObserver提供了JMX和HTTP兩種模式來暴露接口畫像數(shù)據(jù),這一點與實時數(shù)據(jù)類似,在我們MOF系列的兄弟篇《中間件增加框架之CaptureFramework》中已經(jīng)詳細介紹過,在此處不再贅述。
開源地址:開源地址:https://github.com/uavorg
作者:李興勝
來源:宜信技術(shù)學(xué)院
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。