[發(fā)明專利]應(yīng)用程序監(jiān)控方法和裝置有效
| 申請?zhí)枺?/td> | 201110164513.2 | 申請日: | 2011-06-17 |
| 公開(公告)號: | CN102831043A | 公開(公告)日: | 2012-12-19 |
| 發(fā)明(設(shè)計(jì))人: | 王興勇 | 申請(專利權(quán))人: | 阿里巴巴集團(tuán)控股有限公司 |
| 主分類號: | G06F11/30 | 分類號: | G06F11/30 |
| 代理公司: | 北京康信知識(shí)產(chǎn)權(quán)代理有限責(zé)任公司 11240 | 代理人: | 吳貴明 |
| 地址: | 英屬開曼群島大開*** | 國省代碼: | 開曼群島;KY |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 應(yīng)用程序 監(jiān)控 方法 裝置 | ||
技術(shù)領(lǐng)域
本申請涉及互聯(lián)網(wǎng)領(lǐng)域,具體而言,涉及一種應(yīng)用程序監(jiān)控方法和裝置。
背景技術(shù)
如今互聯(lián)網(wǎng)應(yīng)用越來越復(fù)雜,對系統(tǒng)的可用性和穩(wěn)定性的要求越來越高,我們不能完全保證系統(tǒng)沒有問題,只能做到盡可能的減少問題。然而,當(dāng)系統(tǒng)出現(xiàn)問題時(shí),需要第一時(shí)間發(fā)現(xiàn),并以最快的速度解決掉,把對客戶的影響降到最低,而這就需要應(yīng)用程序監(jiān)控系統(tǒng),以便實(shí)時(shí)的監(jiān)控系統(tǒng)的運(yùn)行狀況,對運(yùn)行時(shí)數(shù)據(jù)進(jìn)行分析。
為了實(shí)現(xiàn)對應(yīng)用程序的監(jiān)控,現(xiàn)有技術(shù)中提供了以下幾種解決方案:
1)主動(dòng)報(bào)告健康數(shù)據(jù):在業(yè)務(wù)邏輯中添加監(jiān)控邏輯(程序),比如當(dāng)發(fā)現(xiàn)程序中的某個(gè)值不合法,則主動(dòng)將錯(cuò)誤信息發(fā)送到監(jiān)控中心;
2)采用Spring(Spring是一個(gè)開源框架,它是為了解決企業(yè)應(yīng)用開發(fā)的復(fù)雜性而創(chuàng)建的。)等框架提供的AOP(AOP為Aspect?Oriented?Programming的縮寫,意為:面向方法編程,為程序動(dòng)態(tài)統(tǒng)一添加功能的一種技術(shù))功能,把系統(tǒng)監(jiān)控的邏輯分離出來,如果被攔截的方法出現(xiàn)異常情況,則發(fā)送錯(cuò)誤信息到監(jiān)控中心;
3)采用JMX(Java?Management?Extensions)框架,將服務(wù)封裝為MBean(Managed?Bean),由監(jiān)控中心定時(shí)抓取數(shù)據(jù),或者定時(shí)發(fā)送數(shù)據(jù)到監(jiān)控中心。
然而,上述解決方案具有以下問題:
1)應(yīng)用監(jiān)控的邏輯代碼與正常的業(yè)務(wù)邏輯代碼耦合在一起,當(dāng)需要更新監(jiān)控邏輯代碼時(shí),需要重新編寫包括應(yīng)用監(jiān)控邏輯和業(yè)務(wù)邏輯代碼,將更新后的監(jiān)控邏輯代碼與業(yè)務(wù)邏輯代碼重新進(jìn)行耦合,組成新的程序代碼。這樣,增加了代碼的復(fù)雜度與維護(hù)成本,并且修改困難,需要從新發(fā)布;
2)通過Spring的AOP實(shí)現(xiàn),用于監(jiān)控的攔截器也要配置到文件中,與應(yīng)用的配置文件耦合在一起。這樣,當(dāng)需要更新監(jiān)控邏輯代碼時(shí),需要重新配置攔截器,并將更新后的攔截器與配置文件重新進(jìn)行耦合,組成新的文件。這樣,增加了代碼的復(fù)雜度與維護(hù)成本,并且修改困難,需要從新發(fā)布。
發(fā)明內(nèi)容
本申請的主要目的在于提供一種應(yīng)用程序監(jiān)控方法和裝置,以至少解決現(xiàn)有技術(shù)中代碼復(fù)雜度和維護(hù)成本較高的問題。
根據(jù)本申請的一個(gè)方面,提供了一種應(yīng)用程序監(jiān)控方法,其包括:在類文件中加入監(jiān)控鉤子,其中,監(jiān)控鉤子與監(jiān)控程序相關(guān)聯(lián);在執(zhí)行類文件的監(jiān)控鉤子時(shí),調(diào)用監(jiān)控鉤子關(guān)聯(lián)的監(jiān)控程序?qū)?yīng)用程序進(jìn)行監(jiān)控,其中,所述監(jiān)控程序和應(yīng)用程序代碼分別位于不同的類文件中,且該二類文件獨(dú)立于包含了所述監(jiān)控鉤子的類文件。
在類文件中加入監(jiān)控鉤子的步驟包括:在系統(tǒng)啟動(dòng)時(shí)檢查類文件是否存在匹配的監(jiān)控項(xiàng);若存在,則在類文件中加入監(jiān)控鉤子。
在類文件中加入監(jiān)控鉤子的步驟包括:加載類文件的字節(jié)碼;將監(jiān)控鉤子加入到字節(jié)碼中。
在系統(tǒng)啟動(dòng)時(shí)檢查類文件是否存在匹配的監(jiān)控項(xiàng)的步驟包括:讀取所有監(jiān)控項(xiàng)的配置文件;在加載所述類文件的字節(jié)碼時(shí)判斷所述類文件中的應(yīng)用程序信息是否與監(jiān)控項(xiàng)匹配,其中,所述監(jiān)控項(xiàng)包括包名、類名、方法名和參數(shù)列表的字符串;若匹配,則判斷出所述類文件存在匹配的監(jiān)控項(xiàng)。
在調(diào)用監(jiān)控鉤子對應(yīng)的監(jiān)控程序關(guān)聯(lián)用程序進(jìn)行監(jiān)控之后,應(yīng)用程序監(jiān)控方法還包括:將類文件設(shè)置成不包括匹配的監(jiān)控項(xiàng);重新加載類文件。
在調(diào)用監(jiān)控鉤子關(guān)聯(lián)的監(jiān)控程序?qū)?yīng)用程序進(jìn)行監(jiān)控之后,應(yīng)用程序監(jiān)控方法還包括:修改所述監(jiān)控鉤子關(guān)聯(lián)的監(jiān)控程序;重新加載所述類文件,并在執(zhí)行所述類文件的監(jiān)控鉤子時(shí),調(diào)用所述監(jiān)控鉤子關(guān)聯(lián)的監(jiān)控程序?qū)λ鰬?yīng)用程序進(jìn)行監(jiān)控。
根據(jù)本申請的另一方面,提供了一種應(yīng)用程序監(jiān)控裝置,其包括:設(shè)置單元,用于在類文件中加入監(jiān)控鉤子,其中,所述監(jiān)控鉤子與監(jiān)控程序相關(guān)聯(lián);監(jiān)控單元,用于在執(zhí)行所述類文件的監(jiān)控鉤子時(shí),調(diào)用所述監(jiān)控鉤子關(guān)聯(lián)的監(jiān)控程序?qū)λ鰬?yīng)用程序進(jìn)行監(jiān)控,其中,所述監(jiān)控程序和應(yīng)用程序代碼分別位于不同的類文件中,且該二類文件獨(dú)立于包含了所述監(jiān)控鉤子的類文件。
設(shè)置單元包括:檢查模塊,用于在系統(tǒng)啟動(dòng)時(shí)檢查類文件是否存在匹配的監(jiān)控項(xiàng);添加模塊,用于在類文件存在匹配的監(jiān)控項(xiàng)時(shí)在類文件中加入監(jiān)控鉤子。
添加模塊包括:加載子模塊,用于加載類文件的字節(jié)碼;添加子模塊,用于將監(jiān)控鉤子加入到字節(jié)碼中。
檢查模塊包括:讀取子模塊,用于讀取所有監(jiān)控項(xiàng)的配置文件;判斷子模塊,用于在加載所述類文件的字節(jié)碼時(shí)判斷所述類文件中的應(yīng)用程序信息是否與監(jiān)控項(xiàng)匹配,其中,所述監(jiān)控項(xiàng)包括包名、類名、方法名和參數(shù)列表的字符串;若匹配,則判斷出所述類文件存在匹配的監(jiān)控項(xiàng)。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于阿里巴巴集團(tuán)控股有限公司,未經(jīng)阿里巴巴集團(tuán)控股有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110164513.2/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種新型微生物培養(yǎng)皿
- 下一篇:垃圾桶
- 同類專利
- 專利分類
G06F 電數(shù)字?jǐn)?shù)據(jù)處理
G06F11-00 錯(cuò)誤檢測;錯(cuò)誤校正;監(jiān)控
G06F11-07 .響應(yīng)錯(cuò)誤的產(chǎn)生,例如,容錯(cuò)
G06F11-22 .在準(zhǔn)備運(yùn)算或者在空閑時(shí)間期間內(nèi),通過測試作故障硬件的檢測或定位
G06F11-28 .借助于檢驗(yàn)標(biāo)準(zhǔn)程序或通過處理作錯(cuò)誤檢測、錯(cuò)誤校正或監(jiān)控
G06F11-30 .監(jiān)控
G06F11-36 .通過軟件的測試或調(diào)試防止錯(cuò)誤
- 對虛擬化應(yīng)用程序的基于策略的訪問
- 應(yīng)用程序執(zhí)行、應(yīng)用程序提供裝置和應(yīng)用程序分發(fā)方法
- 一種軟件保護(hù)方法、裝置及系統(tǒng)
- 應(yīng)用程序的開發(fā)方法和系統(tǒng)
- 應(yīng)用程序的擴(kuò)展方法及裝置
- 一種應(yīng)用程序商店的應(yīng)用程序發(fā)布方法及裝置
- 一種應(yīng)用程序的監(jiān)控方法、裝置及系統(tǒng)
- 用于對虛擬化應(yīng)用程序的基于策略的訪問的方法和系統(tǒng)
- 應(yīng)用程序控制方法、裝置、終端及存儲(chǔ)介質(zhì)
- 一種應(yīng)用程序安裝、卸載方法及通信終端
- 多級校內(nèi)監(jiān)控系統(tǒng)
- 多級校內(nèi)監(jiān)控系統(tǒng)
- 一種范圍廣、力度大的校內(nèi)監(jiān)控系統(tǒng)
- 一種監(jiān)控的方法及系統(tǒng)
- 設(shè)備的監(jiān)控方法、裝置、系統(tǒng)和空調(diào)
- 多級校內(nèi)監(jiān)控系統(tǒng)
- 設(shè)備監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備及存儲(chǔ)介質(zhì)
- 風(fēng)險(xiǎn)雷達(dá)預(yù)警的監(jiān)控方法及系統(tǒng)
- 區(qū)塊鏈網(wǎng)絡(luò)監(jiān)控系統(tǒng)、裝置及方法
- 基于機(jī)器視覺的車站客流安全智能監(jiān)控系統(tǒng)
- 一種數(shù)據(jù)庫讀寫分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測試終端的測試方法
- 一種服裝用人體測量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)





