故障的根源是QA的DB被打掛了,后來經(jīng)確認(rèn),是監(jiān)控寶的QA同事在跑一個(gè)用戶處理腳本。同時(shí)導(dǎo)致被打掛的還有Redis。
這和透視寶的PHPAgent沒有關(guān)系啊?
有關(guān)系!這是PHPAgent的trace_error和trace_exception選項(xiàng),打出的日志。這項(xiàng)功能已經(jīng)在測(cè)試中,即將正式發(fā)布上線。
最終解決問題方案非常簡(jiǎn)單: 關(guān)閉nginx,關(guān)閉apache,重啟mysql, 重啟redis,重啟apache,重啟nginx。驗(yàn)證監(jiān)控寶、透視寶和CWOP平臺(tái),恢復(fù)。
這個(gè)案例的應(yīng)用場(chǎng)景是:
用戶在生產(chǎn)環(huán)境中會(huì)遇到各種因數(shù)據(jù)或流量、代碼等造成的錯(cuò)誤和異常,而這些錯(cuò)誤和異常之前并沒有遇到過,因此錯(cuò)誤和異常并未被關(guān)注,此時(shí)解決問題需要使用APM產(chǎn)品透視的錯(cuò)誤和異常發(fā)現(xiàn)功能。
該功能可以自動(dòng)捕捉因資源、接口、數(shù)據(jù)或其他原因造成的未預(yù)知異常,并進(jìn)行匯報(bào)和統(tǒng)計(jì)分析,做到精準(zhǔn)提示和預(yù)警(預(yù)測(cè)未來)。
云智慧APM產(chǎn)品透視寶的設(shè)計(jì)初衷:
1. 有效管理企業(yè)應(yīng)用服務(wù)器軟硬件和應(yīng)用本身的性能問題;
2. 從性能管理的角度補(bǔ)充并充分地了解企業(yè)應(yīng)用架構(gòu)拓?fù)?
3. 準(zhǔn)確找到并幫助解決企業(yè)應(yīng)用的性能瓶頸點(diǎn);
4. 使用性能管理快速解決問題,規(guī)避潛在的應(yīng)用風(fēng)險(xiǎn),從而提升應(yīng)用價(jià)值;
要達(dá)到以上目標(biāo),我們需要做到這樣幾個(gè)要點(diǎn):
1. 要準(zhǔn)確理解APM的真正含義。
APM絕不僅僅是簡(jiǎn)單的速度監(jiān)測(cè)和日志管理。不少APM廠商,看似酷炫的界面,其實(shí)只是做了一個(gè)非常簡(jiǎn)單的日志統(tǒng)計(jì)管理。APM包含的內(nèi)容非常深廣,廠商們喜歡把這張圖拋出來忽悠用戶,但是真正做到的APM的,其實(shí)并不多。
根據(jù)Gartner的定義,真正的APM要求做到5個(gè)范圍:終端用戶體驗(yàn),應(yīng)用架構(gòu)映射,應(yīng)用事務(wù)分析,深度應(yīng)用診斷,分析與報(bào)告。
去年國(guó)外一位分析師做過一次分析對(duì)比,可以反映去年的情況,今年需要再做一下對(duì)比。
2. 從終端用戶體驗(yàn)出發(fā),做到數(shù)據(jù)的“端”到“端”
多年前業(yè)內(nèi)就在提End2End,現(xiàn)在業(yè)內(nèi)幾個(gè)廠商在繼云智慧提出端到端概念之后,也在這么吆喝。端到端有很多種理解,我們的理解是,從終端用戶出發(fā),將從request到response整個(gè)鏈路中涉及到的數(shù)據(jù),有效地串接起來,這樣的數(shù)據(jù)才是真正的端到端。
實(shí)現(xiàn)方式也比較直接,從請(qǐng)求開始產(chǎn)生一致hash,該hash將伴隨整個(gè)請(qǐng)求過程,一步一步向后或旁進(jìn)行傳遞,并從最末或最旁的響應(yīng)開始,一步一步向前或旁進(jìn)行回應(yīng)。
3. 用戶行為數(shù)據(jù)與性能管理數(shù)據(jù)的有機(jī)結(jié)合
用戶行為數(shù)據(jù)是大數(shù)據(jù)中最難令人捉摸的一類數(shù)據(jù)。大多數(shù)情況下人的行為喜好是固定的,或有幾個(gè)偏好方向。如色彩喜好,第一視點(diǎn)喜好,甚至有的人會(huì)有特定的邊角點(diǎn)擊喜好。不同的位置或色彩的按鈕、鏈接,可能在不同的深度會(huì)對(duì)應(yīng)用的性能造成皆然不同的影響。
同樣的一個(gè)功能項(xiàng),由于不同的喜好設(shè)定,也可能會(huì)造成完全不同的價(jià)值體現(xiàn)。透視寶Mobile SDK和Web Rum,都非常友好地記錄用戶的行為喜好,行為鏈路。
4. 使用智能發(fā)現(xiàn)技術(shù),完成應(yīng)用代碼運(yùn)行時(shí)的拓?fù)溆成洹?/p>
基于要點(diǎn)2所講的“端”到“端”實(shí)現(xiàn)原理,為某一個(gè)特定的請(qǐng)求進(jìn)行“染色”加工,不難在數(shù)據(jù)的最未“端”準(zhǔn)確得到一次請(qǐng)求中的請(qǐng)求鏈路。于是我們可以基于此對(duì)數(shù)以億萬計(jì)的用戶行為,戴上一個(gè)“應(yīng)用”的帽子。
在這個(gè)帽子下面,數(shù)據(jù)不再是一個(gè)個(gè)的孤島,而是有生命的交替轉(zhuǎn)換。我們可以準(zhǔn)確地分析出一個(gè)應(yīng)用的架構(gòu)拓?fù)?,有哪些?fù)載均衡,每次請(qǐng)求命中的是哪一個(gè)負(fù)載點(diǎn);也可以準(zhǔn)確地分析出一個(gè)服務(wù)集群中,有哪些組成節(jié)點(diǎn),每一次請(qǐng)求,究竟命中的是哪一個(gè)或多個(gè)節(jié)點(diǎn)。如這張漂亮的蜘蛛網(wǎng):
這在維護(hù)一個(gè)舊有系統(tǒng)或剛剛接手的新系統(tǒng)時(shí),是非常有用的。曾經(jīng)接觸過深圳的一家上市企業(yè)的CTO,他說他們有10余名架構(gòu)師,需要用半年之久,才能準(zhǔn)確地畫出他們的應(yīng)用拓?fù)洹?/p>
5.使用智能探針技術(shù),取得深層次性能指標(biāo)。
這里著重要說就是SmartAgent各個(gè)插件的實(shí)現(xiàn)原理。如PHPAgent剛剛的一次應(yīng)用。在與龍珠的合作中,一個(gè)特別有意思的需求,即是:統(tǒng)計(jì)cache key的命中。不是從cache層面統(tǒng)覽的status,這樣的意義過于局限,而是從應(yīng)用層面,進(jìn)行準(zhǔn)確分析。如:統(tǒng)計(jì)某一個(gè)具體key的命中率。從這個(gè)層面,性能指標(biāo)的取得,已經(jīng)被賦予了非常深的意義。
6.深度分析各項(xiàng)大數(shù)據(jù)指標(biāo),得出多維度請(qǐng)求應(yīng)答的散點(diǎn)信息。
大數(shù)據(jù)指標(biāo)不再多說,我們著重說“多維度”和“散點(diǎn)”,比如請(qǐng)求事務(wù)數(shù)據(jù)。一個(gè)應(yīng)用中的事務(wù)基本是不可枚舉的,因?yàn)橛懈鞣N參數(shù)的存在;那么在各種參數(shù)存在的前提上,怎么對(duì)響應(yīng)時(shí)間進(jìn)行統(tǒng)計(jì)?
各廠商的做法:這段時(shí)間內(nèi)請(qǐng)求時(shí)間最慢的事務(wù)top10,這是相當(dāng)不負(fù)責(zé)任的做法。為什么不負(fù)責(zé)任:我知道這就是我的top10,然后呢?天天說這個(gè)top10,周周說,月月說,這并不能反映我的應(yīng)用健康狀態(tài)。我們需要關(guān)注的是,某段時(shí)間內(nèi),請(qǐng)求次數(shù)又多,響應(yīng)時(shí)間又相對(duì)較慢的這些事務(wù)。
所以我們提出了三個(gè)維度的交叉:?jiǎn)挝粫r(shí)間內(nèi),請(qǐng)求次數(shù),響應(yīng)時(shí)間。
于是我們可以畫出一幅矩陣圖,X軸是時(shí)間,左Y軸是請(qǐng)求次數(shù),右Y軸是平均響應(yīng)時(shí)間。這些事務(wù)以向量散落在這個(gè)象限內(nèi),那么我們可以得出,距離XY的左原點(diǎn),距離最遠(yuǎn)的,即是我們所關(guān)注的。
經(jīng)過抽象和產(chǎn)品梳理,我們得出了這樣非常有意義的分析結(jié)果:
整個(gè)項(xiàng)目對(duì)于事務(wù)的健康分析狀況,一目了然,同時(shí)又可以快速找到關(guān)注目標(biāo)。
透視寶在具體實(shí)現(xiàn)中,經(jīng)過了多次實(shí)踐和演化 最終幫這些典型客戶解決了這樣非常實(shí)際的三個(gè)需求:
1. 幫助企業(yè)解決普遍存在的“投訴即反饋”的情況,非常有力的改善了研發(fā)、運(yùn)維、管理人員被動(dòng)接受反饋的現(xiàn)狀,避免了業(yè)務(wù)下降和直接的用戶丟失。
2. 幫助企業(yè)管理者避免了項(xiàng)目?jī)?yōu)化或重構(gòu)過程中,盲目的性能、體驗(yàn)優(yōu)化,提供了有效的性能、體驗(yàn)優(yōu)化建議,和相對(duì)應(yīng)的充分的數(shù)據(jù)佐證。
3. 幫助企業(yè)幾乎無成本地、零修改地進(jìn)行性能、體驗(yàn)監(jiān)控。