搭建前端監(jiān)控系統(tǒng)(五)消息隊(duì)列處理并發(fā),通過一個消息暴增引發(fā)的前端線上崩了的問題場景來說明:消息隊(duì)列處理并發(fā)的重要性隨著前端監(jiān)控日志搜集的內(nèi)容越來越多,終于由于公司公眾號的一波推文,導(dǎo)致了日志的瞬間流量達(dá)到歷史新高,以至于mysql無法處理如此多的連接,系統(tǒng)崩潰。當(dāng)然,作為日志上傳的服務(wù)器,這個是必然會發(fā)生的情況,只是早晚的問題。既然出現(xiàn)了并發(fā)問題,那么前端工程師們就著手來處理吧。日志上傳如何緩解高并發(fā)的情況呢?我們分為三個小點(diǎn)來處理。為了解決規(guī)則報(bào)警的問題,監(jiān)控平臺可以引入一些簡單的數(shù)學(xué)模型來解決時(shí)序數(shù)據(jù)的異常識別工作。國內(nèi)好用的前端監(jiān)控和前端性能監(jiān)控軟件
你知道有多少用戶沒等到頁面首屏出現(xiàn)就離開了嗎?性能不佳會對業(yè)務(wù)目標(biāo)產(chǎn)生負(fù)面影響。比如,BBC發(fā)現(xiàn)他們的網(wǎng)站加載時(shí)間每增加一秒,他們就會失去10%的用戶。高性能站點(diǎn)比低性能站點(diǎn)更能吸引和留住用戶,而留住用戶對于提高用戶轉(zhuǎn)化率至關(guān)重要。
何衡量站點(diǎn)性能站點(diǎn)性能好壞的表現(xiàn)形式是多樣的,不是單純通過頁面加載速度、頁面渲染速度就能衡量,而是要關(guān)注從頁面開始加載到被關(guān)閉的整個過程中,用戶對性能的感知。一個頁面,即使很快渲染,如果對用戶的交互遲遲沒有響應(yīng),那么在用戶心中這個站點(diǎn)的性能依然很差。站點(diǎn)性能一般可以分為兩類,一類是首屏性能,另一類是運(yùn)行時(shí)性能。前者衡量的是頁面從加載開始到可以穩(wěn)定交互的性能情況,后者衡量的是頁面穩(wěn)定后到頁面關(guān)閉的性能情況。 前端監(jiān)控webfunny前端監(jiān)控系統(tǒng)的功能:性能分析,通過分析頁面和接口性能,加載耗時(shí),成功率。
搭建前端監(jiān)控系統(tǒng)(五)消息隊(duì)列處理并發(fā),在做webfunny前端監(jiān)控項(xiàng)目之前,作為前端程序員我能夠接觸到的關(guān)于消息隊(duì)列的應(yīng)用場景實(shí)在有限,所以不能介紹更復(fù)雜的內(nèi)容,大致的思維邏輯:有消息進(jìn)來,先存入消息隊(duì)列里,另一端再從隊(duì)列去取出來,完成接下來的工作。從代碼的角度來看:就是一個生產(chǎn)者和消費(fèi)者的模式,生產(chǎn)者不停的向消息隊(duì)列里生產(chǎn)消息,消費(fèi)者在有需要的時(shí)候,從消息隊(duì)列里取消息,一旦完成消費(fèi),隊(duì)列里便移除這個消息。消息的生產(chǎn)者和消費(fèi)者互相沒有感知,生產(chǎn)者產(chǎn)生過剩的消息都存放在消息隊(duì)列里,由消費(fèi)者慢慢消耗。以此來削峰填谷,達(dá)到處理高并發(fā)的目的。通過對前端消息應(yīng)用場景的淺顯理解,我自己在設(shè)計(jì)webfunny前端監(jiān)控時(shí),在這塊兒做了許多補(bǔ)充,因此webfunny前端監(jiān)控也時(shí)足以滿足目前日志上傳的需求了。
二、前端數(shù)據(jù)分類:2.4 異常相關(guān)的數(shù)據(jù)這里的異常是指 JS 的異常,用戶的瀏覽器上報(bào) JS 的 bug,這會極大地降低用戶體驗(yàn)異常的提示信息:這是識別一個異常的重要依據(jù),如:為空或不是對象JS 文件名異常所在行發(fā)生異常的瀏覽器堆棧信息:必要的時(shí)候需要函數(shù)調(diào)用的堆棧信息,但是注意堆棧信息可能會比較大,需要截取2.5 其它數(shù)據(jù)除了上面提到的 4 類基本的數(shù)據(jù)統(tǒng)計(jì)需求,我們當(dāng)然還可以根據(jù)實(shí)際情況來定義一些其他的統(tǒng)計(jì)需求,如用戶瀏覽器對 canvas 的支持程度, 再比如比較特殊的-用戶進(jìn)行輪播圖翻頁的次數(shù),這些數(shù)據(jù)統(tǒng)計(jì)需求都是前端能夠滿足的,每一項(xiàng)統(tǒng)計(jì)的結(jié)果都體現(xiàn)了前端數(shù)據(jù)的價(jià)值webfunny前端埋點(diǎn)系統(tǒng)具備純私有化部署,自主掌控?cái)?shù)據(jù)安全性、個性化、私密性。
搭建前端監(jiān)控系統(tǒng)(五)消息隊(duì)列處理并發(fā):1、增加日志上傳的時(shí)間間隔前端程序員應(yīng)該都知道,日志上傳的時(shí)間間隔越長,用戶在這個間隔內(nèi)離開的幾率就會越大,日志的漏傳量就會增加,然后會導(dǎo)致日志的準(zhǔn)確度降低。因?yàn)槲覀兊奶结樖前膊逶跒g覽器內(nèi)的,用戶隨時(shí)都有可能關(guān)掉,所以,理論上講間隔越短越好,但這并不現(xiàn)實(shí)。所以這個需要在服務(wù)器的承受能力和日志的準(zhǔn)確率之間做個權(quán)衡。由具體情況而定2、移除探針代碼里冗余的參數(shù),縮短參數(shù)名字的長度另外一點(diǎn),每臺服務(wù)器的硬盤有限,帶寬有限,如果參數(shù)名字太長,參數(shù)內(nèi)容冗余,對服務(wù)器的硬盤和帶寬都是一種極大的浪費(fèi)。雖然每條日志都不起眼,但是日志起量了以后,就是會是一筆非常龐大的開銷。通過監(jiān)控來對線上的流量數(shù)據(jù)、用戶量統(tǒng)計(jì)、頁面訪問趨勢、用戶活躍量趨勢等等指標(biāo)有一個清晰直觀的了解。有哪些好用的前端監(jiān)控和前端行為分析軟件
webfunny通過對線上項(xiàng)目的實(shí)時(shí)分析,能讓前端工程師對線上狀況有非常直觀的了解。國內(nèi)好用的前端監(jiān)控和前端性能監(jiān)控軟件
前端程序員如何明確定位、排查前端生產(chǎn)問題?二、分析錯誤詳情通過webfunny前端監(jiān)控系統(tǒng),我們可以把線上的錯誤日志統(tǒng)計(jì)出來了,那如何解析這些錯誤日志呢。比如:解析出用戶的機(jī)型,版本,系統(tǒng)平臺,影響范圍,以及具體的錯誤位置,從而提高前端工程師解決問題的效率。方法能夠利用的功能都已經(jīng)用的差不多了,但是它真的可以幫我們定位和解決所有前端線上的問題嗎?線上能夠修復(fù)的問題,前端工程師肯定是遇到都在盡量修復(fù),但是前端線上的問題頻發(fā)。當(dāng)客服反饋一個問題,你發(fā)現(xiàn)沒有測試機(jī)型,無法復(fù)現(xiàn)用戶錯誤的時(shí)候,讓你來修復(fù)這個問題,前端只能兩眼一抹黑無能為力。所以前端監(jiān)控的建設(shè)很有必要性。國內(nèi)好用的前端監(jiān)控和前端性能監(jiān)控軟件
上海觀縱科技有限公司是一家集研發(fā)、制造、銷售為一體的****,公司位于上海市奉賢區(qū)望園南路1288弄80號1904、1909室,成立于2022-11-14。公司秉承著技術(shù)研發(fā)、客戶優(yōu)先的原則,為國內(nèi)webfunny前端監(jiān)控,webfunny前端埋點(diǎn),全鏈路應(yīng)用性能監(jiān)控,Argus-IT運(yùn)維監(jiān)控的產(chǎn)品發(fā)展添磚加瓦。在孜孜不倦的奮斗下,公司產(chǎn)品業(yè)務(wù)越來越廣。目前主要經(jīng)營有webfunny前端監(jiān)控,webfunny前端埋點(diǎn),全鏈路應(yīng)用性能監(jiān)控,Argus-IT運(yùn)維監(jiān)控等產(chǎn)品,并多次以傳媒、廣電行業(yè)標(biāo)準(zhǔn)、客戶需求定制多款多元化的產(chǎn)品。我們以客戶的需求為基礎(chǔ),在產(chǎn)品設(shè)計(jì)和研發(fā)上面苦下功夫,一份份的不懈努力和付出,打造了webfunny,walkingfunny,argus產(chǎn)品。我們從用戶角度,對每一款產(chǎn)品進(jìn)行多方面分析,對每一款產(chǎn)品都精心設(shè)計(jì)、精心制作和嚴(yán)格檢驗(yàn)。上海觀縱科技有限公司以市場為導(dǎo)向,以創(chuàng)新為動力。不斷提升管理水平及webfunny前端監(jiān)控,webfunny前端埋點(diǎn),全鏈路應(yīng)用性能監(jiān)控,Argus-IT運(yùn)維監(jiān)控產(chǎn)品質(zhì)量。本公司以良好的商品品質(zhì)、誠信的經(jīng)營理念期待您的到來!