一種遠程實時分析外部系統(tǒng)接口性能的方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)處理與分析技術(shù)領(lǐng)域,具體涉及一種遠程實時分析外部系統(tǒng)數(shù)據(jù)層接口性能的方法。
【背景技術(shù)】
[0002]隨著科技的迅速發(fā)展,信息全球化共享速度也日益加快,這與網(wǎng)絡(luò)技術(shù)的大規(guī)模普及應(yīng)用密不可分,而網(wǎng)絡(luò)性能、穩(wěn)定性都對信息是否能夠通暢交互起關(guān)鍵作用。在網(wǎng)絡(luò)應(yīng)用中經(jīng)常需要通過http請求訪問外部系統(tǒng)的接口獲取數(shù)據(jù),隨著外部系統(tǒng)接口使用日漸頻繁,系統(tǒng)的性能及穩(wěn)定性會越來越受到外部系統(tǒng)的影響,這就需要對外部系統(tǒng)的接口進行分析,獲取外部系統(tǒng)接口狀況。
[0003]但目前,現(xiàn)有的技術(shù)方案只能做到實時分析或遠程分析,無法兩者兼得?,F(xiàn)有的實時分析是在開發(fā)階段中通過在代碼中輸出中間值的方式做,只適用于本地開發(fā)環(huán)境,不適用于遠程生產(chǎn)環(huán)境;而現(xiàn)有的遠程分析是在遠程接口代碼中輸出中間值在遠程文件中,一定時間后下載遠程文件進行手動查看,并不實時,且查看不便利。上述記錄外部系統(tǒng)接口狀態(tài)的文件會占用較大的磁盤空間,遠程傳輸時也會占用較大的網(wǎng)絡(luò)資源,此外記錄的信息太多,可能會存在敏感信息,技術(shù)上亦存在安全風(fēng)險。
【發(fā)明內(nèi)容】
[0004]為解決上述問題,本發(fā)明公開了一種分析數(shù)據(jù)層接口的方法,能夠在遠程環(huán)境下做到外部系統(tǒng)接口性能的實時分析。
[0005]為了達到上述目的,本發(fā)明提供如下技術(shù)方案:
[0006]一種遠程實時分析外部系統(tǒng)接口性能的方法,包括如下步驟:
[0007]步驟A,通過瀏覽器打開遠程環(huán)境中的待調(diào)試網(wǎng)頁;
[0008]步驟B,驗證當(dāng)前用戶是否有訪問權(quán)限,只針對有權(quán)限的用戶進行后續(xù)步驟;
[0009]步驟C,執(zhí)行當(dāng)前應(yīng)用功能邏輯,當(dāng)執(zhí)行過程中需要請求外部系統(tǒng)接口時,在執(zhí)行接口請求前后在內(nèi)存中存儲日志數(shù)據(jù),所述日志數(shù)據(jù)中包括外部系統(tǒng)接口的以下信息:唯一標(biāo)識、請求的開始時間、請求的結(jié)束時間、外部接口描述信息、外部接口狀態(tài)信息;
[0010]步驟D,讀取所有日志,將各類日志按照不同的唯一標(biāo)識合并到一起,得到不同外部接口的日志記錄,根據(jù)預(yù)先制定的分析規(guī)則針對每個外部接口分析性能,得到各外部接口性能分析報告;
[0011 ] 步驟E,在頁面上輸出應(yīng)用原本輸出的內(nèi)容,并按照與內(nèi)容一致的格式輸出步驟D得到的性能報告。
[0012]進一步的,所述步驟C中請求外部接口過程中包括如下步驟:
[0013]步驟C-1,將接口名、接口入?yún)ⅰ㈦S機數(shù)和/或當(dāng)前時間進行轉(zhuǎn)換后得到一個字符串,針對該字符串生成有限長度的準(zhǔn)唯一標(biāo)識或唯一標(biāo)識;
[0014]步驟C-2,將接口名、接口入?yún)⑦M行轉(zhuǎn)換后得到一個字符串,然后與唯一標(biāo)識一起,按照“唯一標(biāo)識::描述標(biāo)識::轉(zhuǎn)換后的描述信息”的格式存儲日志;
[0015]步驟C-3,在開始訪問外部接口時,按照“唯一標(biāo)識::開始標(biāo)識::當(dāng)前時間”的格式存儲在日志中;
[0016]步驟C-4,執(zhí)行接口請求;
[0017]步驟C-5,在外部接口訪問結(jié)束時,按照“唯一標(biāo)識::結(jié)束標(biāo)識::當(dāng)前時間”的格式存儲日志;
[0018]步驟C-6,將執(zhí)行接口請求時的狀態(tài)信息進行轉(zhuǎn)換后得到一個字符串,按照“唯一標(biāo)識::狀態(tài)標(biāo)識::轉(zhuǎn)換后的狀態(tài)信息”的格式存儲日志。
[0019]進一步的,所述唯一標(biāo)識通過以下步驟生成:將接口名、接口入?yún)?、隨機數(shù)和/或當(dāng)前時間進行轉(zhuǎn)換后得到一個字符串,其后對該字符串生成有限長度的準(zhǔn)唯一標(biāo)識。
[0020]進一步的,所述轉(zhuǎn)換方法為json編碼。
[0021 ] 進一步的,所述對字符串生成有限長度的準(zhǔn)唯一標(biāo)識的方法為對字符串求md5值。
[0022]進一步的,所述步驟E中輸出的性能報告與原本輸出的內(nèi)容格式相同。
[0023]進一步的,所述性能報告包括接口名稱、接口入?yún)?、接口耗時、接口狀態(tài)。
[0024]進一步的,所述方法通過PHP語言進行應(yīng)用,在步驟A與步驟C之間還包括如下步驟:進行緩沖,獲得PHP輸出的所有內(nèi)容。
[0025]一種遠程實時分析外部系統(tǒng)接口性能的系統(tǒng),包括鑒權(quán)模塊、數(shù)據(jù)層公共接口模塊、日志存儲模塊、日志分析模塊、輸出展示模塊,所述鑒權(quán)模塊用于對用戶鑒權(quán),并控制具備權(quán)限的用戶才能進行訪問;所述數(shù)據(jù)層公共接口模塊提供了請求外部系統(tǒng)接口的封裝,并在執(zhí)行接口請求的前后記錄請求的開始時間、描述信息、結(jié)束時間和狀態(tài)信息至日志存儲模塊;所述日志存儲模塊用于存儲數(shù)據(jù)層公共接口模塊訪問外部接口時生成的日志;所述日志分析模塊用于讀出日志存儲模塊中的日志數(shù)據(jù),并進行解析合并后對日志數(shù)據(jù)進行分析,最終得到各接口分析報告;所述輸出展示模塊用于在瀏覽器中輸出原功能內(nèi)容并按照內(nèi)容格式輸出各接口性能分析報告。
[0026]進一步的,所述日志存儲模塊為全局可訪問的PHP數(shù)組,PHP數(shù)組僅在PHP程序執(zhí)行時存在于內(nèi)存中,網(wǎng)頁生成后消失。
[0027]有益效果:
[0028]本發(fā)明能夠?qū)⒚看芜M行外部接口訪問時的接口信息記錄為內(nèi)存日志,在應(yīng)用程序執(zhí)行之后即開始進行日志分析,并在瀏覽器調(diào)試頁面窗口中輸出展示各接口性能分析報告,實現(xiàn)了外部接口性能的遠程實時分析。由于日志存儲在內(nèi)存中,并不利用服務(wù)器上的磁盤存儲空間,充分節(jié)約了服務(wù)器硬盤資源,還避免了從遠程服務(wù)器上拖取日志信息進行人工查看帶來的網(wǎng)絡(luò)資源浪費和效率低下問題。此外,能夠根據(jù)應(yīng)用程序的輸出內(nèi)容格式顯示接口分析報告,提升了用戶體驗。
【附圖說明】
[0029]圖1為本發(fā)明提供的遠程實時分析外部系統(tǒng)接口性能的方法流程示意圖;
[0030]圖2為在請求外部系統(tǒng)接口前后記錄日志的流程示意圖;
[0031]圖3為對日志進行解析合并的流程示意圖;
[0032]圖4為日志分析結(jié)果示例圖;
[0033]圖5為日志分析結(jié)果的頁面截圖;
[0034]圖6為本發(fā)明提供的遠程實時分析外部系統(tǒng)接口性能的系統(tǒng)結(jié)構(gòu)示意圖。
【具體實施方式】
[0035]以下將結(jié)合具體實施例對本發(fā)明提供的技術(shù)方案進行詳細說明,應(yīng)理解下述【具體實施方式】僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍。
[0036]由于PHP是最受歡迎的WEB開發(fā)語言之一,應(yīng)用非常廣泛,本發(fā)明以PHP語言為環(huán)境基礎(chǔ),實現(xiàn)了對PHP外部系統(tǒng)接口性能進行遠程實時分析的方法,如圖1所示,具體包括以下步驟:
[0037]Stepl:通過瀏覽器打開待調(diào)試網(wǎng)頁,其中,待調(diào)試網(wǎng)頁能夠調(diào)用各遠程外部接口。遠程環(huán)境是指提供PHP服務(wù)的機器與瀏覽器所在的機器不是同一臺機器,PHP代碼無法通過編輯的方式進行變更,每變更一次PHP代碼都需要進行一次發(fā)布。
[0038]Step2:運行應(yīng)用功能,首先進行鑒權(quán),沒有權(quán)限的用戶將不能訪問,只允許有權(quán)限的用戶訪問。
[0039]Step3:內(nèi)容緩沖,取得PHP輸出的所有內(nèi)容:當(dāng)PHP應(yīng)用是一個網(wǎng)頁時,內(nèi)容緩沖的就是這個網(wǎng)頁的全部html,當(dāng)PHP應(yīng)用是一個ajax接口,內(nèi)容緩沖的就是接口響應(yīng)的內(nèi)容。當(dāng)使用其他語言如java語言開發(fā)時,則無需包含這個步驟。
[0040]Step4:執(zhí)行功能邏輯并在請求外部系統(tǒng)接口前后記錄日志:功能邏輯為應(yīng)用本身需要執(zhí)行的代碼,在執(zhí)行過程當(dāng)中可能會向外部系統(tǒng)多個接口發(fā)出數(shù)次訪問請求,在請求接口的前后將請求的開始時間、結(jié)束時間、描述信息、狀態(tài)信息寫入日志,日志記錄在內(nèi)存中,不占用物理硬盤空間。本發(fā)明不需要存儲日志文件,僅需看到訪問時當(dāng)前網(wǎng)頁的日志,當(dāng)前網(wǎng)頁存儲的日志是頁面級的、請求級的,這樣就保證了日志足夠小,并避免了存儲敏感信息。
[0041]每條日志數(shù)據(jù)中應(yīng)存儲入關(guān)于該接口的唯一標(biāo)識來作為各接口日