當(dāng)移動(dòng)互聯(lián)網(wǎng)與云計(jì)算出現(xiàn)后,用戶不必再和企業(yè)的服務(wù)人員打交道,而是通過移動(dòng)APP來直接獲取服務(wù),這就造成用戶體驗(yàn)前置。傳統(tǒng)的ITOM產(chǎn)品由于缺少有效的移動(dòng)端和云端監(jiān)管手段,難以發(fā)現(xiàn)用戶體驗(yàn)前置帶來的性能瓶頸,云智慧面向業(yè)務(wù)的端到端性能管理平臺(tái)透視寶以業(yè)務(wù)的視角,對(duì)整個(gè)用戶體驗(yàn)交付鏈條的每一個(gè)環(huán)節(jié)進(jìn)行數(shù)據(jù)采集和分析,準(zhǔn)確發(fā)現(xiàn)和定位影響用戶體驗(yàn)的任何性能問題。
目前透視寶前端應(yīng)用包含以下幾個(gè),關(guān)系圖如下所示
透視寶通過主站與用戶進(jìn)行直接交互,為用戶提供網(wǎng)站、移動(dòng)App、主機(jī)、服務(wù)等應(yīng)用的性能數(shù)據(jù)。用戶認(rèn)證、數(shù)據(jù)中心、文檔中心應(yīng)用都是直接或間接為主站提供服務(wù),本次說明只針對(duì)透視寶主站,以下使用的前端均指主站前端服務(wù)。
服務(wù)布局
透視寶前端涉及到以下幾個(gè)服務(wù):
DataSource為后端數(shù)據(jù)系統(tǒng),通常情況下的請(qǐng)求流程如下:用戶發(fā)出請(qǐng)求后首先訪問到Tengine,Tengine作為反向代理把請(qǐng)求轉(zhuǎn)發(fā)到Apache,Apache調(diào)用PHP首先從Redis獲取信息,若無數(shù)據(jù)則從Mysql中補(bǔ)充,如果請(qǐng)求含有主機(jī)、服務(wù)、應(yīng)用等數(shù)據(jù)則會(huì)從Elasticsearch中獲取。
前端應(yīng)用架構(gòu)
云智慧透視寶前端使用PHP作為開發(fā)語言,使用了Seaslog的日志擴(kuò)展,Cwop的用戶管理擴(kuò)展,Redis擴(kuò)展,yaf擴(kuò)展(CwopServer端依賴),其作用如下:
Seaslog:PHP日志模塊,為開發(fā)人員提供線上線下日志情況的分析材料
Curl:PHP Rest服務(wù)基礎(chǔ),為PHP調(diào)用后端Api接口提供支持
Yaf:Cwop的Server為yaf框架開發(fā),依賴PHP的yaf框架
Cwop:Cwop的php客戶端
PHP使用目前流行的Laravel框架進(jìn)行開發(fā),前端運(yùn)行流程如下所示:
Laravel提供了多語言,數(shù)據(jù)庫,緩存,郵件,依賴包管理等功能,極大提高了透視寶的開發(fā)效率,以下是透視寶前端兩個(gè)比較重要的功能:
· UnitTest - Laravel集成并強(qiáng)化了PHP的單元測試功能,結(jié)合谷歌插件,使開發(fā)人員可以完成端到端的調(diào)試工作;
· Artisan命令行工具 - 結(jié)合Linux的Crontab,完成了郵件發(fā)送,SmartAgent插件管理、心跳管理,告警交互等功能,單獨(dú)使用時(shí)可以執(zhí)行腳本完成數(shù)據(jù)庫的自動(dòng)化修改;
從PHP處理數(shù)據(jù)到前端頁面展現(xiàn)我們使用了目前流行的:
BootstrapCss框架,使前端頁面美觀自適
Seajs為透視寶使用的JS模塊選擇加載框架
Echarts作為透視寶使用的繪圖工具,其適應(yīng)性,可操作性都是非常良好的,透視寶所有版面的圖片基本都是Echarts生成的。
數(shù)據(jù)采集流程
透視寶數(shù)據(jù)采集分為三個(gè)來源:
1.用戶安裝SmartAgent,插件采集,通過SendProxy發(fā)送的數(shù)據(jù)。
2.用戶安裝SmartAgent插件后注入JS,或手動(dòng)注入JS,JS采集的數(shù)據(jù)。
3.移動(dòng)端嵌入SDK,采集移動(dòng)APP數(shù)據(jù)。
如下圖所示:
數(shù)據(jù)采集使用Sendproxy為SmartAgent的調(diào)度器,所有SmartAgent的數(shù)據(jù)都經(jīng)過Sendproxy進(jìn)行統(tǒng)一調(diào)度發(fā)送。
其主要優(yōu)勢在于:
· 發(fā)送隊(duì)列,保證各插件數(shù)據(jù)發(fā)送的穩(wěn)定性
· 可以作為代理,部署都可聯(lián)外網(wǎng)的主機(jī),可以保證局域網(wǎng)非聯(lián)網(wǎng)環(huán)境的數(shù)據(jù)發(fā)送
端到端實(shí)現(xiàn)原理
端到端是透視寶的重要功能特色,其實(shí)現(xiàn)原理簡單地說,把請(qǐng)求流程中所有途經(jīng)節(jié)點(diǎn)都記錄下來,通過code堆棧和服務(wù)采集的數(shù)據(jù)還原請(qǐng)求所遍歷的過程。
上圖是一個(gè)請(qǐng)求拓?fù)洌堑湫偷腘ginx Proxy,Apache Server,PHP解析,Mysql DB的架構(gòu),請(qǐng)求經(jīng)過了Nginx->Apache->PHP->Mysql&Api,在各節(jié)點(diǎn)上點(diǎn)擊可以查看:
· 請(qǐng)求當(dāng)時(shí)各服務(wù)的運(yùn)行狀態(tài)
· 請(qǐng)求的代碼堆棧,SQL連接,異常信息,連接狀態(tài)
實(shí)現(xiàn)原理如下(默認(rèn)各節(jié)點(diǎn)已經(jīng)安裝了我們的SmartAgent):
請(qǐng)求到Nginx時(shí),Nginx在請(qǐng)求中添加唯一id標(biāo)志,然后轉(zhuǎn)發(fā)到Apache,Apache在請(qǐng)求中收到我們的id標(biāo)志,則會(huì)延用此id,請(qǐng)求交到PHP,同理PHP,Mysql等也會(huì)在請(qǐng)求中延用此id標(biāo)志。
PHP獲取數(shù)據(jù)處理完成后請(qǐng)求結(jié)束,開始響應(yīng)過程,PHP在響應(yīng)信息中添加相同的id標(biāo)志,交還給Apache,Apache返回Nginx時(shí)會(huì)在響應(yīng)信息中延用此id,Nginx把內(nèi)容發(fā)送到瀏覽器靜態(tài)頁面時(shí),連同id與我們的JS文件發(fā)送到用戶端,用戶端JS捕獲瀏覽器數(shù)據(jù)后發(fā)送到我們的后端DataSource處理。
透視寶獲取到PHP應(yīng)用帶有此id的請(qǐng)求數(shù)據(jù)時(shí),可以查到Nginx,Apache的請(qǐng)求信息,也可以獲取Mysql,Api的請(qǐng)求信息,端到端的拓?fù)鋱D也就形成了,通過id可心獲取終端用戶的信息。如果終點(diǎn)的Api也使用了我們的CodeAgent,則會(huì)轉(zhuǎn)化成應(yīng)用,與前面的PHP一樣繼續(xù)向后延伸,否則只顯示請(qǐng)求的Api信息,獲取不到Code詳情。
在上述過程中,Nginx Agent,Apache Agent,Mysql Agent一直持續(xù)發(fā)送數(shù)據(jù),所以當(dāng)點(diǎn)擊Nginx時(shí)就可以根據(jù)請(qǐng)求時(shí)間獲取Nginx的即時(shí)狀態(tài),為用戶端到端的分析提供強(qiáng)有力的支持。
下面提供一個(gè)前后端數(shù)據(jù)交互的完整點(diǎn)的簡圖,其中DataSource對(duì)Mysql的操作是通過透視寶應(yīng)用的接口實(shí)現(xiàn)的
- 蜜度索驥:以跨模態(tài)檢索技術(shù)助力“企宣”向上生長
- 美媒聚焦比亞迪“副業(yè)”:電子代工助力蘋果,下個(gè)大計(jì)劃瞄準(zhǔn)AI機(jī)器人
- 微信零錢通新政策:銀行卡轉(zhuǎn)入資金提現(xiàn)免手續(xù)費(fèi)引熱議
- 消息稱塔塔集團(tuán)將收購和碩印度iPhone代工廠60%股份 并接管日常運(yùn)營
- 蘋果揭秘自研芯片成功之道:領(lǐng)先技術(shù)與深度整合是關(guān)鍵
- 英偉達(dá)新一代Blackwell GPU面臨過熱挑戰(zhàn),交付延期引發(fā)市場關(guān)注
- 馬斯克能否成為 AI 部部長?硅谷與白宮的聯(lián)系日益緊密
- 余承東:Mate70將在26號(hào)發(fā)布,意外泄露引發(fā)關(guān)注
- 無人機(jī)“黑科技”亮相航展:全球首臺(tái)低空重力測量系統(tǒng)引關(guān)注
- 賽力斯發(fā)布聲明:未與任何伙伴聯(lián)合開展人形機(jī)器人合作
- 賽力斯觸及漲停,汽車整車股盤初強(qiáng)勢拉升
免責(zé)聲明:本網(wǎng)站內(nèi)容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開相關(guān)鏈接。