何映軍
(云南電網(wǎng)有限責(zé)任公司信息中心,云南昆明,650206)
應(yīng)用系統(tǒng)業(yè)務(wù)交易若想實(shí)現(xiàn)用戶體驗(yàn)可視化,就需要借助APM技術(shù)進(jìn)行二次性能開發(fā),APM平臺(tái)提供的API接口能夠?yàn)橄到y(tǒng)平臺(tái)收集所需信息,并將收集到的數(shù)據(jù)信息及時(shí)推送過來,利用Kafka集群模塊實(shí)現(xiàn)數(shù)據(jù)信息的及時(shí)存儲(chǔ)。存儲(chǔ)信息在Storm集群的計(jì)算、統(tǒng)計(jì)下得到所需展示結(jié)果,并將處理結(jié)果及時(shí)上傳至關(guān)系數(shù)據(jù)庫。用戶顯示界面通過定期刷新操作從關(guān)系數(shù)據(jù)庫中提取并顯示計(jì)算出的數(shù)據(jù)信息。用戶若是想要查看詳細(xì)數(shù)據(jù)信息,可以在分布式文件系統(tǒng)中進(jìn)行檢索查找。系統(tǒng)監(jiān)控過程需要將人員關(guān)系與業(yè)務(wù)流程進(jìn)行內(nèi)部結(jié)合,同時(shí)還需做好外部系統(tǒng)的集成工作。用戶體驗(yàn)可視化系統(tǒng)需要建立模塊化的分層邏輯結(jié)構(gòu),就技術(shù)層面而言需要涵蓋數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)存儲(chǔ)及數(shù)據(jù)展示幾項(xiàng)功能。
伴隨科技的發(fā)展進(jìn)步,APM系統(tǒng)得到了完善深化,其探針數(shù)量呈現(xiàn)逐漸增多的趨勢(shì)。為了適應(yīng)全量數(shù)據(jù)的使用要求,APM系統(tǒng)的探針采集數(shù)據(jù)量及并發(fā)量也呈現(xiàn)逐漸增多的趨勢(shì),但是如何處理好高并發(fā)數(shù)據(jù)關(guān)系,成為研究界需要重點(diǎn)解決的問題。本系統(tǒng)的數(shù)據(jù)采集技術(shù)主要建立在分布式計(jì)算框架Storm的基礎(chǔ)上,通過對(duì)采集數(shù)據(jù)的系統(tǒng)處理,有效降低龐大數(shù)據(jù)信息給單臺(tái)服務(wù)器帶來的壓力。通過采集系統(tǒng)獲得的數(shù)據(jù)信息借助Kafka消息中間件實(shí)現(xiàn)及時(shí)存儲(chǔ)的目的,以便于為用戶操作軌跡識(shí)別及用戶標(biāo)識(shí)抓取提供數(shù)據(jù)支持。
消息中間件系統(tǒng)主要使用可靠的消息傳遞機(jī)制來實(shí)現(xiàn)平臺(tái)無關(guān)數(shù)據(jù)的分析處理。消息中間件技術(shù)適用于需要可靠數(shù)據(jù)傳輸?shù)姆植际江h(huán)境,并且可以實(shí)現(xiàn)不同對(duì)象之間的消息傳遞與行為激活操作。具體流程為:發(fā)送者將數(shù)據(jù)消息發(fā)送至消息服務(wù)器,消息服務(wù)器將數(shù)據(jù)消息存放在某個(gè)隊(duì)列中,并選取合適時(shí)機(jī)將上述數(shù)據(jù)消息轉(zhuǎn)發(fā)給接收者。消息中間件技術(shù)之所以能夠穿梭于各種平臺(tái)通信系統(tǒng),主要是因?yàn)樵摷夹g(shù)具有屏蔽各種平臺(tái)和協(xié)議的作用,能夠?qū)崿F(xiàn)各種應(yīng)用之間的協(xié)調(diào)管理。
可視化拓展技術(shù)主要涵蓋了數(shù)據(jù)可視化及界面可定制化兩方面內(nèi)容,其中信息可視化技術(shù)具有將結(jié)構(gòu)、非結(jié)構(gòu)數(shù)據(jù)轉(zhuǎn)換成適當(dāng)可視化圖表的作用,從而實(shí)現(xiàn)將隱藏?cái)?shù)據(jù)信息直接展現(xiàn)在用戶面前的目的。數(shù)據(jù)可視化圖表種類繁多,功能各異,可以滿足不同系統(tǒng)的展示需求。界面可定制化技術(shù)能夠?qū)崿F(xiàn)當(dāng)前報(bào)表功能的優(yōu)化處理,集中整合當(dāng)前各種數(shù)據(jù)展示圖表,有效提高用戶關(guān)注度,同時(shí)還能滿足不同用戶的報(bào)表界面自定義設(shè)置要求。報(bào)表界面自定義設(shè)置主要涵蓋配置界面展示模塊內(nèi)容定義及配置模塊展示數(shù)據(jù)定義兩方面內(nèi)容。
對(duì)于普通監(jiān)控?cái)?shù)據(jù)而言,設(shè)計(jì)人員可以設(shè)定每幾分鐘刷新一次的操作,但是這個(gè)操作無法滿足異常狀況的基本需要,還需將數(shù)據(jù)信息實(shí)時(shí)發(fā)送到終端界面,以便運(yùn)維人員能夠及時(shí)發(fā)現(xiàn)、解決問題。使用HTML5定義的WebSocket協(xié)議,可以節(jié)省服務(wù)器資源和帶寬,實(shí)現(xiàn)實(shí)時(shí)推送的目的。WebSocket協(xié)議本質(zhì)上是一個(gè)TCP協(xié)議,由通信協(xié)議和編程API組成,從而賦予瀏覽器實(shí)時(shí)通信的能力??蛻舳撕头?wù)器通過這個(gè)連接通道自由地傳遞信息,并且這個(gè)連接通道會(huì)一直持續(xù)到某一方主動(dòng)關(guān)閉連接為止。
監(jiān)控?cái)?shù)據(jù)作為寶貴的數(shù)據(jù)資產(chǎn),是衡量系統(tǒng)運(yùn)行健康狀況的最直觀指標(biāo),通過對(duì)監(jiān)控?cái)?shù)據(jù)的展示、運(yùn)算與分析,有助于及時(shí)發(fā)現(xiàn)系統(tǒng)運(yùn)行薄弱環(huán)節(jié)、性能瓶頸及系統(tǒng)漏洞。實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)指的是正在運(yùn)行的系統(tǒng)、服務(wù)器某一時(shí)刻的運(yùn)行狀態(tài)信息,一旦系統(tǒng)存在異?,F(xiàn)象,可視化系統(tǒng)就能發(fā)現(xiàn)實(shí)時(shí)異常數(shù)據(jù)并對(duì)這個(gè)異常信號(hào)做出適宜響應(yīng)。緩存數(shù)據(jù)指的是無需長久保存的數(shù)據(jù),可能是某些數(shù)據(jù)運(yùn)算過程中產(chǎn)生的中間數(shù)據(jù),具有數(shù)據(jù)周期較短的特點(diǎn)。在數(shù)據(jù)采集平臺(tái)中,實(shí)時(shí)數(shù)據(jù)和緩存數(shù)據(jù)由內(nèi)存數(shù)據(jù)庫進(jìn)行維護(hù)管理的。當(dāng)采集到的數(shù)據(jù)能夠滿足運(yùn)算、分析要求時(shí),實(shí)時(shí)處理模塊就會(huì)對(duì)相應(yīng)數(shù)據(jù)進(jìn)行運(yùn)算分析,并將分析結(jié)果放到前臺(tái)進(jìn)行展示,同時(shí)發(fā)送相應(yīng)的實(shí)時(shí)報(bào)警信息。
功能建模技術(shù)主要用于對(duì)APM采集數(shù)據(jù)的分析整理,APM能對(duì)一個(gè)或多個(gè)應(yīng)用過程進(jìn)行數(shù)據(jù)信息采集,從而實(shí)現(xiàn)用戶標(biāo)識(shí)或時(shí)間戳的抓起操作。設(shè)計(jì)師可以在業(yè)務(wù)系統(tǒng)中建立一個(gè)測試帳號(hào),并將操作處理間隔設(shè)定為2min,從而確保自動(dòng)識(shí)別操作的準(zhǔn)確性、及時(shí)性。具體操作流程為:設(shè)計(jì)人員將業(yè)務(wù)系統(tǒng)全部功能錄入監(jiān)控平臺(tái)之中,并將可供識(shí)別到的應(yīng)用過程與人工方式進(jìn)行有機(jī)結(jié)合,以便于在某組應(yīng)用過程被調(diào)用的時(shí)候,準(zhǔn)確找出所被調(diào)用功能的具體信息,進(jìn)而實(shí)現(xiàn)業(yè)務(wù)監(jiān)控的目的。
隨著我國電網(wǎng)公司對(duì)于監(jiān)控業(yè)務(wù)需求的不斷升級(jí),地區(qū)電網(wǎng)在滿足日常監(jiān)控需求的前提下,還需具備用戶操作軌跡自動(dòng)識(shí)別功能。目前的應(yīng)用系統(tǒng)具備用戶標(biāo)識(shí)抓取功能,能夠及時(shí)獲取各條數(shù)據(jù)的時(shí)間戳,幫助服務(wù)器端明確特定用戶在某個(gè)時(shí)間節(jié)點(diǎn)進(jìn)行了哪項(xiàng)應(yīng)用操作,進(jìn)而完成功能建模及數(shù)據(jù)識(shí)別工作。最后通過對(duì)這些應(yīng)用過程與系統(tǒng)功能的整合研究,有助于服務(wù)器端實(shí)現(xiàn)對(duì)用戶操作軌跡的系統(tǒng)識(shí)別與記錄。
全棧溯源用于準(zhǔn)確定位復(fù)雜的應(yīng)用程序環(huán)境,并且可以有效地確定網(wǎng)絡(luò)、移動(dòng)設(shè)備、瀏覽器及服務(wù)器上的性能問題出現(xiàn)位置及原因。同時(shí)具有降低跨部門排障溝通成本,實(shí)現(xiàn)完整業(yè)務(wù)調(diào)用鏈的實(shí)時(shí)跟蹤。全棧溯源技術(shù)能夠發(fā)揮如下功能:從網(wǎng)絡(luò)到服務(wù)端的性能溯源;從瀏覽器端到服務(wù)端的性能溯源;跨服務(wù)器、跨語言、跨應(yīng)用程序的性能追蹤。全棧溯源技術(shù)的合理運(yùn)用能夠完成端到端的整體監(jiān)控,一旦發(fā)生故障,服務(wù)器端能夠根據(jù)監(jiān)控?cái)?shù)據(jù),分析研究具體問題出現(xiàn)區(qū)域,甚至能定位具體的服務(wù)器代碼。