基于狀態(tài)機(jī)故障定位方法以及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本申請(qǐng)涉及計(jì)算機(jī)領(lǐng)域,特別是涉及一種基于狀態(tài)機(jī)故障定位方法以及裝置。
【背景技術(shù)】
[0002] 當(dāng)前的軟件系統(tǒng)通常包括多個(gè)操作流程,每個(gè)操作流程完成一項(xiàng)復(fù)雜的事物,例 如,通過(guò)操作流程完成創(chuàng)建用戶信息等等。每個(gè)操作流程都包括多個(gè)操作步驟,通過(guò)依次執(zhí) 行各個(gè)操作步驟,從而完成整個(gè)操作流程。但是為了提高編程效率,通常將多個(gè)操作步驟都 封裝在一個(gè)模塊中。在執(zhí)行操作流程時(shí),通過(guò)調(diào)用模塊來(lái)完成整個(gè)操作流程。在執(zhí)行過(guò)程 中,如果出現(xiàn)了故障,可以通過(guò)模塊所產(chǎn)生的信息判斷故障出現(xiàn)在哪個(gè)模塊中。
[0003] 但是,在這種方式下,故障只能夠定位到模塊級(jí)別,用戶是沒(méi)法得知故障具體出現(xiàn) 在哪個(gè)操作步驟中,所以,故障的定位十分粗糙。
【發(fā)明內(nèi)容】
[0004] 本申請(qǐng)?zhí)峁┮环N基于狀態(tài)機(jī)故障定位方法以及裝置,能夠在操作步驟級(jí)別實(shí)現(xiàn)對(duì) 故障的定位,提高故障的定位的精確度。
[0005] 本申請(qǐng)第一方面提供一種基于狀態(tài)機(jī)故障定位方法,其特征在于,包括:獲取出現(xiàn) 故障的操作流程的分析信息,其中,所述分析信息包括日志,所述日志為所述出現(xiàn)故障的操 作流程在執(zhí)行操作步驟時(shí)產(chǎn)生;根據(jù)所述日志中的特殊字符獲取與所述日志的特殊字符匹 配的狀態(tài)機(jī)模板;將所述分析信息以及所述狀態(tài)機(jī)模板進(jìn)行模式匹配以獲得出現(xiàn)故障的操 作流程的操作步驟順序圖;根據(jù)所述日志中的錯(cuò)誤日志在所述操作步驟順序圖中找到出現(xiàn) 故障的操作步驟。
[0006] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)施方式中,在獲取出現(xiàn)故障的操作 流程的分析信息之前還包括:從被分析系統(tǒng)中獲取多個(gè)操作流程的分析信息;根據(jù)所述多 個(gè)操作流程的分析信息中的錯(cuò)誤日志獲得發(fā)生故障的操作流程的流程標(biāo)識(shí);根據(jù)發(fā)生故障 的操作流程的流程標(biāo)識(shí)從所述多個(gè)操作流程的分析信息中獲取出現(xiàn)故障的操作流程的分 析信息。
[0007] 結(jié)合第一方面或第一方面的第一種可能的實(shí)施方式,在第一方面的第二種可能的 實(shí)施方式中,如果所述出現(xiàn)故障的操作流程包括子流程,則根據(jù)所述子流程中的日志的特 殊字符獲取與所述子流程中的日志的特殊字符匹配的狀態(tài)機(jī)模板。
[0008] 結(jié)合第一方面或第一方面的第一種或第二種可能的實(shí)施方式,在第一方面的第三 種可能的實(shí)施方式中,所述狀態(tài)機(jī)模板包括操作流程中執(zhí)行操作步驟時(shí)狀態(tài)跳轉(zhuǎn)的源狀 態(tài)、狀態(tài)跳轉(zhuǎn)的目標(biāo)狀態(tài)、狀態(tài)跳轉(zhuǎn)的匹配特征以及子流程標(biāo)識(shí)。
[0009] 結(jié)合第一方面或第一方面的第一種或第二種或第三種可能的實(shí)施方式,在第一方 面的第四種可能的實(shí)施方式中,所述分析信息還包括系統(tǒng)消息、系統(tǒng)內(nèi)存的使用狀況以及 處理器的使用狀況。
[0010] 本申請(qǐng)第二方面提供一種基于狀態(tài)機(jī)故障定位裝置,其特征在于,包括:信息獲取 模塊、模板獲取模塊、匹配模塊以及故障發(fā)現(xiàn)模塊,所述信息獲取模塊用于獲取出現(xiàn)故障的 操作流程的分析信息,其中,所述分析信息包括日志,所述日志為所述出現(xiàn)故障的操作流程 在執(zhí)行操作步驟時(shí)產(chǎn)生;所述模板獲取模塊用于根據(jù)所述日志中的特殊字符獲取與所述日 志的特殊字符匹配的狀態(tài)機(jī)模板;所述匹配模塊用于將所述分析信息以及所述狀態(tài)機(jī)模板 進(jìn)行模式匹配以獲得出現(xiàn)故障的操作流程的操作步驟順序圖;所述故障發(fā)現(xiàn)模塊用于根據(jù) 所述日志中的錯(cuò)誤日志在所述操作步驟順序圖中找到出現(xiàn)故障的操作步驟。
[0011] 結(jié)合第二方面,在第二方面的第一種可能的實(shí)施方式中,所述裝置還包括:標(biāo)識(shí)獲 取模塊以及過(guò)濾模塊,所述信息獲取模塊用于從被分析系統(tǒng)中獲取多個(gè)操作流程的分析信 息;所述標(biāo)識(shí)獲取模塊用于根據(jù)所述多個(gè)操作流程的分析信息中的錯(cuò)誤日志獲得發(fā)生故障 的操作流程的流程標(biāo)識(shí);所述過(guò)濾模塊用于根據(jù)發(fā)生故障的操作流程的流程標(biāo)識(shí)從所述多 個(gè)操作流程的分析信息中獲取出現(xiàn)故障的操作流程的分析信息。
[0012] 結(jié)合第二方面或第二方面的第一種可能的實(shí)施方式,在第二方面的第二種可能的 實(shí)施方式中,所述模板獲取模塊用于在所述出現(xiàn)故障的操作流程包括子流程時(shí),根據(jù)所述 子流程中的日志的特殊字符獲取與所述子流程中的日志的特殊字符匹配的狀態(tài)機(jī)模板。
[0013] 結(jié)合第二方面或第二方面的第一種或第二種可能的實(shí)施方式,在第二方面的第三 種可能的實(shí)施方式中,所述狀態(tài)機(jī)模板包括操作流程中執(zhí)行操作步驟時(shí)狀態(tài)跳轉(zhuǎn)的源狀 態(tài)、狀態(tài)跳轉(zhuǎn)的目標(biāo)狀態(tài)、狀態(tài)跳轉(zhuǎn)的匹配特征以及子流程標(biāo)識(shí)。
[0014] 結(jié)合第二方面或第二方面的第一種或第二種或第三種可能的實(shí)施方式,在第二方 面的第四種可能的實(shí)施方式中,所述分析信息還包括系統(tǒng)消息、系統(tǒng)內(nèi)存的使用狀況以及 處理器的使用狀況。
[0015] 本申請(qǐng)獲取出現(xiàn)故障的操作流程的分析信息,根據(jù)日志中的特殊字符獲取與日志 的特殊字符匹配的狀態(tài)機(jī)模板,再將分析信息以及狀態(tài)機(jī)模板進(jìn)行模式匹配以獲得出現(xiàn)故 障的操作流程的操作步驟順序圖,最后,根據(jù)日志在操作步驟順序圖中找到出現(xiàn)故障的操 作步驟。與現(xiàn)有技術(shù)相比,通過(guò)上述方法能夠獲得出現(xiàn)故障的操作流程的操作步驟順序圖, 并根據(jù)日志在操作步驟順序圖中定位出現(xiàn)故障的操作步驟,所以能夠在操作步驟級(jí)別實(shí)現(xiàn) 對(duì)故障的定位,提高故障的定位的精確度。
[0016] 而且,在現(xiàn)有技術(shù)中,模塊一般是封裝起來(lái)的,所以用戶沒(méi)法獲知模塊內(nèi)部更細(xì)節(jié) 的狀態(tài),但是,通過(guò)本申請(qǐng)?zhí)峁┑姆椒?,能夠獲知模塊內(nèi)部的操作步驟的情況。此外,本申請(qǐng) 通過(guò)模式匹配的方式來(lái)獲得狀態(tài)機(jī)模板,所以,即使部分分析信息丟失,也依然能夠找到狀 態(tài)機(jī)模板,不會(huì)因?yàn)椴糠中畔G失而影響故障定位。
【附圖說(shuō)明】
[0017] 圖1是本發(fā)明實(shí)施例提供的一種基于狀態(tài)機(jī)的故障定位方法的流程圖;
[0018] 圖2是操作流程A的狀態(tài)跳轉(zhuǎn)圖;
[0019] 圖3是本發(fā)明基于狀態(tài)機(jī)的故障定位方法中的狀態(tài)機(jī)模板M的示意圖;
[0020] 圖4是本發(fā)明基于狀態(tài)機(jī)的故障定位方法中的操作步驟順序圖的示意圖;
[0021] 圖5是本發(fā)明實(shí)施例提供的一種基于狀態(tài)機(jī)的故障定位裝置;
[0022] 圖6是本發(fā)明提供的一種終端的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023] 以下描述中,為了說(shuō)明而不是為了限定,提出了諸如特定系統(tǒng)結(jié)構(gòu)、接口、技術(shù)之 類的具體細(xì)節(jié),以便透徹理解本申請(qǐng)。然而,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)清楚,在沒(méi)有這些具體 細(xì)節(jié)的其它實(shí)施方式中也可以實(shí)現(xiàn)本申請(qǐng)。在其它情況中,省略對(duì)眾所周知的裝置、電路以 及方法的詳細(xì)說(shuō)明,以免不必要的細(xì)節(jié)妨礙本申請(qǐng)的描述。
[0024] 參閱圖1,圖1是本發(fā)明實(shí)施例提供的一種基于狀態(tài)機(jī)的故障定位方法的流程圖。 本實(shí)施方式的基于狀態(tài)機(jī)的故障定位方法包括:
[0025] 110 :從被分析系統(tǒng)中獲取多個(gè)操作流程的分析信息。
[0026] 被分析系統(tǒng)為軟件系統(tǒng),被分析系統(tǒng)在運(yùn)行時(shí)產(chǎn)生多個(gè)操作流程,操作流程通過(guò) 調(diào)用多個(gè)模塊以完成一個(gè)具體的事務(wù),其中,模塊中封裝了多個(gè)操作步驟。操作流程在調(diào)用 模塊時(shí),會(huì)執(zhí)行模塊中封裝的操作步驟。操作流程在執(zhí)行模塊中的操作步驟時(shí)會(huì)產(chǎn)生日志 并存儲(chǔ)在磁盤中,日志中記載了操作流程的流程標(biāo)識(shí)以及在執(zhí)行操作步驟時(shí)產(chǎn)生的一些信 息等等。其中,每個(gè)日志中都具有特殊字符,例如,創(chuàng)建用戶的操作步驟所產(chǎn)生的日志中會(huì) 包含"user create"的特殊字符。如果操作流程執(zhí)行操作步驟時(shí)發(fā)生錯(cuò)誤,則會(huì)導(dǎo)致出現(xiàn) 錯(cuò)誤日志。
[0027] 如果操作流程在執(zhí)行時(shí)發(fā)生了錯(cuò)誤,則需要對(duì)被分析系統(tǒng)進(jìn)行分析,從而對(duì)故障 進(jìn)行定位。此時(shí),從被分析系統(tǒng)中獲取多個(gè)操作流程的分析信息,其中,分析信息包括日志、 系統(tǒng)消息、系統(tǒng)內(nèi)存的使用情況以及處理器的使用情況等等。系統(tǒng)內(nèi)存的使用情況包括系 統(tǒng)內(nèi)存的已使用空間,系統(tǒng)內(nèi)存的剩余空間等等。處理器的使用情況包括處理器的資源已 使用多少,以及處理器的資源的剩余多少等等??梢岳斫獾氖?,可以在發(fā)生故障時(shí),一次獲 取多個(gè)操作流程的分析信息,也可以在未發(fā)生故障前,定時(shí)獲取多個(gè)操作流程的分析信息, 在發(fā)生故障時(shí),再獲取上一次定時(shí)之后產(chǎn)生的多個(gè)操作流程的分析信息。為了便于進(jìn)行分 析,可以將獲取到的多個(gè)操作流程的分析信息集中進(jìn)行存儲(chǔ)。
[0028] 120:根據(jù)多個(gè)操作流程的分析信息中的錯(cuò)誤日志獲得發(fā)生故障的操作流程的流 程標(biāo)識(shí)。
[0029] 在獲取多個(gè)操作流程的分析信息之后,從多個(gè)操作流程的分析信息中找到錯(cuò)誤日 志。根據(jù)錯(cuò)誤日志中攜帶的操作流程標(biāo)識(shí)可以獲知發(fā)生故障的操作流程的流程標(biāo)識(shí)。如果 根據(jù)找到的錯(cuò)誤日志獲得的流程標(biāo)識(shí)不止一個(gè),可以對(duì)同一個(gè)流程標(biāo)識(shí)的錯(cuò)誤日志進(jìn)行下 面的處理。
[0030] 130:根據(jù)發(fā)生故障的操作流程的流程標(biāo)識(shí)從多個(gè)操作流程的分析信息中獲取出 現(xiàn)故障的操作流程的分析信息。
[0031] 在獲得發(fā)生故障的操作流程的流程標(biāo)識(shí)之后,根據(jù)發(fā)生故障的操作流程的流程標(biāo) 識(shí)從多個(gè)操作流程的分析信息中過(guò)濾得到出現(xiàn)故障的操作流程的分析信息,以減少需要進(jìn) 行分析的分析信息的數(shù)量。
[0032] 140 :