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