国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種性能監(jiān)控的方法及裝置與流程

      文檔序號:11250762閱讀:978來源:國知局
      一種性能監(jiān)控的方法及裝置與流程

      本發(fā)明涉及網(wǎng)絡通信領域,尤其涉及一種性能監(jiān)控的方法及裝置。



      背景技術:

      隨著企業(yè)信息系統(tǒng)的部署復雜化、云化,辦理一筆業(yè)務往往需要經(jīng)過數(shù)十臺服務器,數(shù)百個服務接口的調(diào)用。面對如此復雜的系統(tǒng)和應用,業(yè)務中斷、系統(tǒng)性能緩慢成為主要技術難題。通過采集業(yè)務應用系統(tǒng)各環(huán)節(jié)的性能信息,分析業(yè)務性能瓶頸,可以為系統(tǒng)性能提出優(yōu)化策略。

      目前的獲取業(yè)務應用性能信息,進行監(jiān)控、分析的方法主要以下幾種:

      1、主動探測技術:模擬移動客戶、營業(yè)員等系統(tǒng)終端用戶的實際業(yè)務操作,采用仿真方式直接對被探測系統(tǒng)特定業(yè)務發(fā)起探測,通過對被探測業(yè)務辦理結果及辦理時延等探測結果的分析,發(fā)現(xiàn)被探測系統(tǒng)中存在問題的業(yè)務功能模塊。然而,主動探測技術基于仿真技術,需要周期執(zhí)行,受探測終端、探測頻率、網(wǎng)絡等情況影響,很難準確反映實際的業(yè)務狀況。

      2、dpi(deeppacketinspect,深度包檢測技術)分析:根據(jù)業(yè)務需求在合適的交換機上設置鏡像端口,獲取交換機網(wǎng)絡數(shù)據(jù)報文并進行數(shù)據(jù)解析、后續(xù)分析,進而還原真實用戶業(yè)務辦理情況。dpi分析業(yè)務系統(tǒng)負荷小、采集實時性高,但軟硬件設備成本較高,且需要對報文格式進行修改。此外,目前真實流量采集只能支持http(hypertexttransferprotocol,超文本傳輸協(xié)議),對于復雜業(yè)務系統(tǒng)的后臺應用服務、數(shù)據(jù)庫服務,均不能很好的進行解析并還原業(yè)務過程。

      3、網(wǎng)頁插碼技術:通過在被采集的系統(tǒng)網(wǎng)頁內(nèi)嵌入java(計算機編程語言)腳本代碼,收集并分析用戶訪問信息,進而還原真實用戶業(yè)務辦理情況。網(wǎng)頁插碼技術可做到對業(yè)務系統(tǒng)基本無負荷,采集實時性高,但只能在網(wǎng)頁層發(fā)揮作用,不能做業(yè)務全過程分析。

      4、業(yè)務系統(tǒng)日志改造技術:通過全面改造業(yè)務系統(tǒng),在業(yè)務系統(tǒng)內(nèi)埋點,通過標準api調(diào)用取得業(yè)務受理日志數(shù)據(jù),并對其進行數(shù)據(jù)解析、后續(xù)分析,進而還原真實用戶業(yè)務辦理情況。業(yè)務系統(tǒng)日志改造技術難度不大,但對于大型的在線生產(chǎn)系統(tǒng)進行業(yè)務日志標準api(applicationprogramminginterface,應用程序編程接口)調(diào)用改造,會導致原始程序的全面修改。一方面工作量大,影響業(yè)務生產(chǎn);另一方面,日志規(guī)范的參數(shù)隨著需求的變化而修改,維護成本高。

      綜上所述,現(xiàn)有的對應用性能監(jiān)控分析時需要修改業(yè)務系統(tǒng)框架層代碼、工作量大和維護成本高。



      技術實現(xiàn)要素:

      本發(fā)明提供一種監(jiān)控方法及裝置,用以解決現(xiàn)有技術中對應用性能監(jiān)控分析時存在需要修改業(yè)務系統(tǒng)框架層代碼、工作量大和維護成本高的問題。

      本發(fā)明實施例提供一種性能監(jiān)控的方法,包括:

      獲取業(yè)務系統(tǒng)中所有類,確定所述所有類中需要監(jiān)控性能信息的類;

      在所述需要監(jiān)控性能信息的類中添加日志處理信息;

      加載所述添加日志處理信息的類,生成日志文件。

      可選的,所述確定所述所有類中需要監(jiān)控性能參數(shù)的類,包括:

      確定需要監(jiān)控性能信息的業(yè)務的業(yè)務標識,根據(jù)所述業(yè)務標識確定父調(diào)用對象;

      根據(jù)所述所有類中的線程獲取java堆棧信息,將所述java堆棧信息與所述父調(diào)用對象匹配;

      將與所述父調(diào)用對象匹配的java堆棧信息對應的類作為所述需要監(jiān)控性能參數(shù)的類。

      可選的,所述在所述需要監(jiān)控性能信息的類中添加日志處理信息,包括:

      通過加載網(wǎng)絡代理proxy組件,在所述需要監(jiān)控性能信息的類的所述業(yè)務系統(tǒng)的框架層的頭部和/或尾部添加日志處理信息。

      可選的,所述日志處理信息包括以下中的任一種或組合:

      日志公共頭、日志參數(shù)、日志內(nèi)容;

      所述日志內(nèi)容包括下中的任一種或組合:

      頭部日志、尾部日志、異常日志。

      可選的,加載所述確定添加日志處理信息的類,生成日志文件之后,包括:

      分析所述日志文件,得到所述需要監(jiān)控性能信息的業(yè)務的性能信息;

      所述性能信息包括:

      業(yè)務開始時間、業(yè)務結束時間、業(yè)務持續(xù)時長、業(yè)務異常信息。

      本發(fā)明實施例還提供一種性能監(jiān)控的裝置,包括:

      確定模塊:用于獲取業(yè)務系統(tǒng)中所有類,確定所述所有類中需要監(jiān)控性能信息的類;

      添加模塊:用于在所述需要監(jiān)控性能信息的類中添加日志處理信息;

      生成模塊:用于加載所述添加日志處理信息的類,生成日志文件。

      可選的,所述確定模塊,具體用于:

      確定需要監(jiān)控性能信息的業(yè)務的業(yè)務標識,根據(jù)所述業(yè)務標識確定父調(diào)用對象;

      根據(jù)所述所有類中的線程獲取java堆棧信息,將所述java堆棧信息與所述父調(diào)用對象匹配;

      將與所述父調(diào)用對象匹配的java堆棧信息對應的類作為所述需要監(jiān)控性能參數(shù)的類。

      可選的,所述添加模塊,具體用于:

      通過加載網(wǎng)絡代理proxy組件,在所述需要監(jiān)控性能信息的類的所述業(yè)務系統(tǒng)的框架層的頭部和/或尾部添加日志處理信息。

      可選的,所述日志處理信息包括以下中的任一種或組合:

      日志公共頭、日志參數(shù)、日志內(nèi)容;

      所述日志內(nèi)容包括下中的任一種或組合:

      頭部日志、尾部日志、異常日志。

      可選的,所述生成模塊,還用于:

      分析所述日志文件,得到所述需要監(jiān)控性能信息的業(yè)務的性能信息;

      所述性能信息包括:

      業(yè)務開始時間、業(yè)務結束時間、業(yè)務持續(xù)時長、業(yè)務異常信息。

      本發(fā)明實施例提供了一種性能監(jiān)控的方法及裝置,通過獲取業(yè)務系統(tǒng)中所有類,確定所述所有類中需要監(jiān)控性能信息的類;在所述需要監(jiān)控性能信息的類中添加日志處理信息;加載所述添加日志處理信息的類,生成日志文件。本發(fā)明實施例提供的性能監(jiān)控的方法及裝置,在對應用系統(tǒng)性能監(jiān)控分析時不需要修改業(yè)務系統(tǒng)框架層代碼,通過在需要監(jiān)控性能信息的類中添加日志處理信息,從而獲取系統(tǒng)的調(diào)用參數(shù),時長等關鍵性能信息,實現(xiàn)應用系統(tǒng)的性能分析,減小了工作量,降低了維護成本。

      附圖說明

      為了更清楚地說明本發(fā)明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域的普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。

      圖1為本發(fā)明實施例提供的一種性能監(jiān)控的方法流程示意圖;

      圖2為本發(fā)明實施例提供的一種性能監(jiān)控的方法流程圖;

      圖3為本發(fā)明實施例提供的一種性能監(jiān)控的裝置結構示意圖。

      具體實施方式

      為了使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明作進一步地詳細描述,顯然,所描述的實施例僅僅是本發(fā)明一部份實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其它實施例,都屬于本發(fā)明保護的范圍。

      本發(fā)明實施例提供一種性能監(jiān)控的方法,如圖1所示,為本發(fā)明實施例提供的一種性能監(jiān)控的方法流程示意圖,包括:

      步驟101:獲取業(yè)務系統(tǒng)中所有類,確定所有類中需要監(jiān)控性能信息的類。

      本發(fā)明實施例中,類(class)是對某種類型的對象定義變量和方法的原型,包含有關對象動作方式的信息,如對象的名稱、方法、屬性和事件等。業(yè)務系統(tǒng)的框架層包括多個類,在獲取所有類之后,需要確定出待監(jiān)控性能信息的類。

      具體地,首先確定需要監(jiān)控性能信息的業(yè)務,得到需要監(jiān)控性能信息的業(yè)務標識,根據(jù)業(yè)務標識確定父調(diào)用對象;然后在所有類中的線程獲取java堆棧信息,將java堆棧信息與父調(diào)用對象匹配;若任一java堆棧信息與父調(diào)用對象匹配,則將該java堆棧信息對應的類作為需要監(jiān)控性能參數(shù)的類。

      例如,將“開戶”業(yè)務作為需要監(jiān)控性能的業(yè)務,繳費業(yè)務對應的業(yè)務標識為“createuser”,確定“開戶”業(yè)務的父調(diào)用對象“org.iplatform.framework.security.controller.usercontroller.createuser”;在獲取到的所有類的系統(tǒng)框架層進行攔截,通過json(javascriptobjectnotation,java腳本對象表示法)配置識別所有java堆棧調(diào)用對象,得到調(diào)用對戲與“org.iplatform.framework.security.controller.usercontroller.createuser”匹配的所有java堆棧,并提取出匹配后的java堆棧對應的類,作為“開戶”業(yè)務對應的類。

      步驟102:在需要監(jiān)控性能信息的類中添加日志處理信息。

      本發(fā)明實施例中,通過java的反射機制在需要監(jiān)控性能信息的類中添加日志處理信息。java的反射機制一種動態(tài)獲取的信息以及動態(tài)調(diào)用對象的方法,具體指在系統(tǒng)運行狀態(tài)中,對于任意一個類,都可以獲取該類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意一個方法和屬性。

      具體地,在系統(tǒng)運行時,判斷任意一個對象所屬的類,構造任意所需監(jiān)控性能的類的對象,確定所需監(jiān)控性能的類所具有的成員變量和方法,并生成動態(tài)網(wǎng)絡代理proxy組件,通過加載網(wǎng)絡代理proxy組件,在需要監(jiān)控性能信息的類的業(yè)務系統(tǒng)的框架層的頭部和/或尾部添加日志處理信息。

      進一步地,日志處理信息根據(jù)預設格式生成,日志處理信息包括以下中的任一種或組合:日志公共頭、日志參數(shù)、日志內(nèi)容。日志內(nèi)容包括下中的任一種或組合:頭部日志、尾部日志、異常日志。

      為了保證日志處理信息的易讀性,需要規(guī)范化日志處理信息的格式,具體可以根據(jù)表1中的格式生成日志處理信息。

      表1

      具體地,“header”為日志公共頭,日志共公頭用空格與日志參數(shù)間隔;para為日志參數(shù),根據(jù)日志類型的,日志參數(shù)不同,采用para@[paraname=xxx,]格式,并用逗號分隔不同參數(shù);content為日志內(nèi)容,為文本字符串。例如,日志處理信息可以為“host_app110.0.2.1crmcrmapp2014-12-1212:00:01222infoapinpara@[clientip=”10.0.1.1”,clienttype=”ie”]callmethodsucceed.”

      例如,如表2所示,日志公共header,可以包括主機名稱、主機ip、應用服務名稱、時間戳、日志級別、日志類別、日志參數(shù)類型等信息。對時間戳,可以采用格式“yyyymmddhhmmsssss”。對于日志級別,可以設置“debug(調(diào)試),info(異常),warning(告警),error(錯誤),critical(重要)”五個日志級別。對于日志類別,可以設置為app(application,應用程序),即類別為服務調(diào)用。對于日志參數(shù)類型,可以包括調(diào)入?yún)?shù)in、調(diào)出參數(shù)out和異常參數(shù)info三個參數(shù),其中in為調(diào)入時刻打印的日志,用于計算調(diào)用時長的starttime;out為調(diào)出時刻打印的日志,用于計算調(diào)用時長的endtime;info為調(diào)用內(nèi)部的信息,不參與時長計算。

      表2

      具體地,在每一個需要監(jiān)控性能信息的類都需要記錄一個頭部日志,一個尾部日志以及若干個異常日志。對于日志類別為app的日志公共頭,日志內(nèi)容中的頭部日志in用來記錄調(diào)入app的日志,可以包括如表3所示的內(nèi)容:

      表3

      對于日志類別為app的日志公共頭,日志內(nèi)容中的尾部日志out用來記錄退出app的日志,可以包括如表4所示的內(nèi)容:

      表4

      對于日志類別為app的日志公共頭,日志內(nèi)容中的異常日志info用來記錄除in,out以外的日志信息,例如異常信息,內(nèi)部業(yè)務調(diào)試信息等,可以包括如表5所示的內(nèi)容:

      表5

      步驟103:加載添加日志處理信息的類,生成日志文件。

      業(yè)務程序運行時,在動態(tài)加載類時性能監(jiān)控proxy組件代碼已植入進應用系統(tǒng)的框架層的需要監(jiān)控性能信息的類中,通過加載類生成日志文件,根據(jù)in,out日志可以分析出每個業(yè)務的調(diào)用時長,根據(jù)info日志可以分析出業(yè)務的方法明細、異常信息以及敏感詞匯,即可以輸出需要監(jiān)控性能信息的業(yè)務的性能信息。

      本發(fā)明實施例提供了一種性能監(jiān)控的方法,通過獲取業(yè)務系統(tǒng)中所有類,確定所述所有類中需要監(jiān)控性能信息的類;在所述需要監(jiān)控性能信息的類中添加日志處理信息;加載所述添加日志處理信息的類,生成日志文件。本發(fā)明實施例提供的性能監(jiān)控的方法,在對應用系統(tǒng)性能監(jiān)控分析時不需要修改業(yè)務系統(tǒng)框架層代碼,通過在需要監(jiān)控性能信息的類中添加日志處理信息,從而獲取系統(tǒng)的調(diào)用參數(shù),時長等關鍵性能信息,實現(xiàn)應用系統(tǒng)的性能分析,減小了工作量,降低了維護成本。

      下面通過具體的方法流程對本發(fā)明實施提供的一種性能監(jiān)控的方法進行詳細說明,如圖2所示,為本發(fā)明實施例提供的一種性能監(jiān)控的方法流程圖,包括:

      步驟201:啟動應用系統(tǒng)。

      步驟202:獲取jvm(javavirtualmachine,java虛擬機)中所有類。

      具體地,jvm為java程序的運行環(huán)境,應用系統(tǒng)的框架層包括的所有類都在jvm中運行。在jvm中可以直接讀取到運行環(huán)境中的所有類。

      步驟203:判斷每一個類是否為需要監(jiān)控的類,若是,則執(zhí)行步驟204,否則執(zhí)行步驟205。

      具體地,首先確定需要監(jiān)控性能信息的業(yè)務,得到需要監(jiān)控性能信息的業(yè)務標識,根據(jù)業(yè)務標識確定父調(diào)用對象;然后在所有類中的線程獲取java堆棧信息,將java堆棧的調(diào)用對象與父調(diào)用對象匹配;若任一java堆棧信息與父調(diào)用對象匹配,則將該java堆棧信息對應的類作為需要監(jiān)控性能參數(shù)的類。

      例如,將“開戶”業(yè)務作為需要監(jiān)控性能的業(yè)務,繳費業(yè)務對應的業(yè)務標識為“createuser”,確定“開戶”業(yè)務的父調(diào)用對象“org.iplatform.framework.security.controller.usercontroller.createuser”;在獲取到的所有類的系統(tǒng)框架層進行攔截,通過json(javascriptobjectnotation,java腳本對象表示法)配置識別所有java堆棧調(diào)用對象,得到調(diào)用對戲與“org.iplatform.framework.security.controller.usercontroller.createuser”匹配的所有java堆棧,并提取出匹配后的java堆棧對應的類,作為“開戶”業(yè)務對應的類。

      步驟204:添加日志處理信息。

      具體地,在系統(tǒng)運行時,判斷任意一個對象所屬的類,構造任意所需監(jiān)控性能的類的對象,確定所需監(jiān)控性能的類所具有的成員變量和方法,并生成動態(tài)網(wǎng)絡代理proxy組件,通過加載網(wǎng)絡代理proxy組件,在需要監(jiān)控性能信息的類的業(yè)務系統(tǒng)的框架層的頭部和/或尾部添加日志處理信息。

      進一步地,日志處理信息根據(jù)預設格式生成,日志處理信息包括以下中的任一種或組合:日志公共頭、日志參數(shù)、日志內(nèi)容。日志內(nèi)容包括下中的任一種或組合:頭部日志、尾部日志、異常日志。在每一個需要監(jiān)控性能信息的類都需要記錄一個頭部日志,一個尾部日志以及若干個異常日志。

      未添加日志處理信息的類可以為:

      publicvoidtest(string[]args)throwsexpection

      {

      dosomething();

      }

      添加日志處理信息之后的類可以為:

      publicvoidtest(stringreqid,string[]args)throwsexpection

      {

      try

      {

      messagemsq=messagefactory.createmessage();

      meq.setreqid(reqid);//設置日志參數(shù)其他屬性

      logtrack.info(msq);

      }

      catch(expectione)

      {thrownewlogtrackexpection(“e001”,”參數(shù)1”,e)}

      }

      步驟205:加載jvm。

      具體地,在加載加載jvm運行環(huán)境時,性能監(jiān)控proxy組件代碼已植入進應用系統(tǒng)的框架層的所有需要監(jiān)控性能信息的類中,通過加載類生成日志文件。根據(jù)頭部日志及尾部日志可以分析出每個業(yè)務的調(diào)用時長,根據(jù)異常日志可以分析出業(yè)務的方法明細、異常信息以及敏感詞匯,即可以輸出需要監(jiān)控性能信息的業(yè)務的性能信息。

      基于相同的發(fā)明構思,本發(fā)明實施例還提供一種性能監(jiān)控的裝置,如圖3所示,包括:

      確定模塊301:用于獲取業(yè)務系統(tǒng)中所有類,確定所述所有類中需要監(jiān)控性能信息的類;

      添加模塊302:用于在所述需要監(jiān)控性能信息的類中添加日志處理信息;

      生成模塊303:用于加載所述添加日志處理信息的類,生成日志文件。

      可選的,所述確定模塊301,具體用于:

      確定需要監(jiān)控性能信息的業(yè)務的業(yè)務標識,根據(jù)所述業(yè)務標識確定父調(diào)用對象;

      根據(jù)所述所有類中的線程獲取java堆棧信息,將所述java堆棧信息與所述父調(diào)用對象匹配;

      將與所述父調(diào)用對象匹配的java堆棧信息對應的類作為所述需要監(jiān)控性能參數(shù)的類。

      可選的,所述添加模塊302,具體用于:

      通過加載網(wǎng)絡代理proxy組件,在所述需要監(jiān)控性能信息的類的所述業(yè)務系統(tǒng)的框架層的頭部和/或尾部添加日志處理信息。

      可選的,所述日志處理信息包括以下中的任一種或組合:

      日志公共頭、日志參數(shù)、日志內(nèi)容;

      所述日志內(nèi)容包括下中的任一種或組合:

      頭部日志、尾部日志、異常日志。

      可選的,所述生成模塊303,還用于:

      分析所述日志文件,得到所述需要監(jiān)控性能信息的業(yè)務的性能信息;

      所述性能信息包括:

      業(yè)務開始時間、業(yè)務結束時間、業(yè)務持續(xù)時長、業(yè)務異常信息。

      本發(fā)明實施例提供了一種性能監(jiān)控的裝置,通過獲取業(yè)務系統(tǒng)中所有類,確定所述所有類中需要監(jiān)控性能信息的類;在所述需要監(jiān)控性能信息的類中添加日志處理信息;加載所述添加日志處理信息的類,生成日志文件。本發(fā)明實施例提供的性能監(jiān)控的裝置,在對應用系統(tǒng)性能監(jiān)控分析時不需要修改業(yè)務系統(tǒng)框架層代碼,通過在需要監(jiān)控性能信息的類中添加日志處理信息,從而獲取系統(tǒng)的調(diào)用參數(shù),時長等關鍵性能信息,實現(xiàn)應用系統(tǒng)的性能分析,減小了工作量,降低了維護成本。

      本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產(chǎn)品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產(chǎn)生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產(chǎn)生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。

      這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。

      這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產(chǎn)生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。

      盡管已描述了本發(fā)明的優(yōu)選實施例,但本領域內(nèi)的技術人員一旦得知了基本創(chuàng)造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優(yōu)選實施例以及落入本發(fā)明范圍的所有變更和修改。

      顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。

      當前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1