本發(fā)明實(shí)施例涉及計算機(jī)應(yīng)用技術(shù)領(lǐng)域,尤其涉及一種可配置化的數(shù)據(jù)監(jiān)控方法及裝置。
背景技術(shù):
隨著信息時代的發(fā)展,數(shù)據(jù)應(yīng)用場景不斷增多,數(shù)據(jù)量大幅提高,數(shù)據(jù)產(chǎn)生的影響力越來越大,數(shù)據(jù)的質(zhì)量也越來越關(guān)鍵。
在數(shù)據(jù)生成過程中,經(jīng)常出現(xiàn)一些影響數(shù)據(jù)正常使用的問題,如上下游表結(jié)構(gòu)不一致導(dǎo)致數(shù)據(jù)同步失敗、上游數(shù)據(jù)的異常導(dǎo)致下游生成的數(shù)據(jù)不準(zhǔn)確。因此,有必要對數(shù)據(jù)進(jìn)行監(jiān)控,提升數(shù)據(jù)的質(zhì)量。
現(xiàn)有的數(shù)據(jù)監(jiān)控方法是,針對每一個監(jiān)控任務(wù)需要預(yù)先編寫好完整的代碼,該預(yù)先編寫的代碼只適用于一個監(jiān)控任務(wù)。而對于新的監(jiān)控任務(wù),則需要開發(fā)人員重新編寫代碼。利用現(xiàn)有數(shù)據(jù)監(jiān)控方法生成的監(jiān)控工具針對的應(yīng)用場景少,不具有通用性。建立新的監(jiān)控任務(wù)意味著編寫新的代碼,這樣開發(fā)任務(wù)量大,開發(fā)成本比較高,而且不利于統(tǒng)一的管理。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種可配置化的數(shù)據(jù)監(jiān)控方法及裝置,用以解決現(xiàn)有技術(shù)的數(shù)據(jù)監(jiān)控方法開發(fā)任務(wù)量大,開發(fā)成本比較高,而且不利于統(tǒng)一的管理的問題。
第一方面,本發(fā)明實(shí)施例中提供了一種可配置化的數(shù)據(jù)監(jiān)控方法,包括:
根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本;
根據(jù)所述監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令;
根據(jù)所述監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的待監(jiān)控的表信息。
第二方面,本發(fā)明實(shí)施例提供了一種可配置化的數(shù)據(jù)監(jiān)控裝置,包括:
監(jiān)控任務(wù)配置文本生成模塊,用于根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本;
監(jiān)控執(zhí)行指令生成模塊,用于根據(jù)所述監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令;
數(shù)據(jù)庫監(jiān)控模塊,用于根據(jù)所述監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的待監(jiān)控的表信息。
本發(fā)明實(shí)施例通過根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本,根據(jù)監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令,再根據(jù)監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的表信息,實(shí)現(xiàn)了數(shù)據(jù)監(jiān)控的可配置化操作,避免了監(jiān)控代碼的重復(fù)開發(fā),節(jié)省了數(shù)據(jù)監(jiān)控的成本,并且本方法操作簡單,更加方便用戶使用。
本發(fā)明的這些方面或其他方面在以下實(shí)施例的描述中會更加簡明易懂。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1示出了本發(fā)明實(shí)施例提供的一種可配置化的數(shù)據(jù)監(jiān)控方法的流程圖;
圖2示出了用于設(shè)置監(jiān)控任務(wù)信息的表單;
圖3示出了本發(fā)明實(shí)施例提供的另一種可配置化的數(shù)據(jù)監(jiān)控方法的流程圖;
圖4示出了本發(fā)明實(shí)施例提供的一種可配置化的數(shù)據(jù)監(jiān)控裝置的框圖;
圖5示出了本發(fā)明實(shí)施例提供的一種服務(wù)器的框圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述。
在本發(fā)明的說明書和權(quán)利要求書及上述附圖中的描述的一些流程中,包含了按照特定順序出現(xiàn)的多個操作,但是應(yīng)該清楚了解,這些操作可以不按照其在本文中出現(xiàn)的順序來執(zhí)行或并行執(zhí)行,操作的序號如101、102等,僅僅是用于區(qū)分開各個不同的操作,序號本身不代表任何的執(zhí)行順序。另外,這些流程可以包括更多或更少的操作,并且這些操作可以按順序執(zhí)行或并行執(zhí)行。需要說明的是,本文中的“第一”、“第二”等描述,是用于區(qū)分不同的消息、設(shè)備、模塊等,不代表先后順序,也不限定“第一”和“第二”是不同的類型。
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
參照圖1,示出了本發(fā)明實(shí)施例提供的一種可配置化的數(shù)據(jù)監(jiān)控方法的流程圖,該方法可以具體包括如下步驟。
步驟101,根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本。
在步驟101之前,可以包括:獲取用戶在網(wǎng)頁頁面上設(shè)置的監(jiān)控任務(wù)信息。
優(yōu)選地,用戶可以通過在網(wǎng)頁頁面上填寫或選取相應(yīng)的參數(shù)來設(shè)置監(jiān)控任務(wù)信息,即使用戶不會編寫程序代碼,也能夠根據(jù)自己的需求設(shè)置與監(jiān)控任務(wù)相關(guān)的參數(shù),從而更加方便用戶使用。
圖2示出了用于設(shè)置監(jiān)控任務(wù)信息的表單。如圖2所示,可以通過在web網(wǎng)頁頁面上填寫表單的方式設(shè)置監(jiān)控任務(wù)信息,然后系統(tǒng)獲取該監(jiān)控任務(wù)信息,并將該控任務(wù)信息以監(jiān)控任務(wù)配置文本的形式保存在系統(tǒng)中,用于運(yùn)行監(jiān)控任務(wù)時調(diào)取該監(jiān)控任務(wù)配置文本。
需要說明的是,圖2所示的表單只為示例性說明,其中所示的表單并不是實(shí)現(xiàn)本發(fā)明實(shí)施例的全部表單。
監(jiān)控任務(wù)配置文本可以包括觸發(fā)方式配置文本和監(jiān)控執(zhí)行配置文本。監(jiān)控執(zhí)行配置文本可以包括數(shù)據(jù)庫配置文本、監(jiān)控規(guī)則配置文本和報警配置文本。
具體地,步驟101具體可以包括如下步驟:
步驟11,根據(jù)獲取的監(jiān)控觸發(fā)方式信息,生成觸發(fā)方式配置文本。
在本發(fā)明實(shí)施例中,觸發(fā)方式配置文本定義的信息可以包括監(jiān)控觸發(fā)類型和監(jiān)控觸發(fā)時間。
監(jiān)控觸發(fā)類型可以包括:crontab觸發(fā)、定時觸發(fā)和api(applicationprograminterface,應(yīng)用程序接口)觸發(fā)。
crontab觸發(fā)依賴于linux系統(tǒng)的crontab命令,可以通過設(shè)置一個時間表達(dá)式,周期性地運(yùn)行監(jiān)控任務(wù)。
定時觸發(fā)是通過設(shè)置一個時間,這樣每天到了該時間,監(jiān)控任務(wù)就能夠自動運(yùn)行。
crontab觸發(fā)和定時觸發(fā)都需要預(yù)先設(shè)置好監(jiān)控觸發(fā)時間。
api觸發(fā)是不同于上面兩種方式的被動觸發(fā),api觸發(fā)是一種主動觸發(fā),使用更加靈活。它主要用于提供給其它應(yīng)用程序調(diào)用和集成,不需要設(shè)置監(jiān)控觸發(fā)時間,屬于即時調(diào)用運(yùn)行任務(wù)。
步驟12,根據(jù)獲取的待監(jiān)控的數(shù)據(jù)庫的信息,生成數(shù)據(jù)庫配置文本。
數(shù)據(jù)庫配置文本用于管理需要連接的數(shù)據(jù)庫的信息,其定義的信息可以包括:數(shù)據(jù)庫類型、數(shù)據(jù)庫名稱、ip地址、端口號、登錄名和登錄密碼中的一種或多種。
數(shù)據(jù)庫類型用于在連接數(shù)據(jù)庫時選擇相應(yīng)的數(shù)據(jù)庫驅(qū)動程序。
步驟13,根據(jù)獲取的針對所述表信息設(shè)置的監(jiān)控規(guī)則信息,生成監(jiān)控規(guī)則配置文本。
本發(fā)明實(shí)施例可以對數(shù)據(jù)庫中的表信息進(jìn)行監(jiān)控。表信息具體可以包括表結(jié)構(gòu)信息和表字段信息。對應(yīng)地,監(jiān)控規(guī)則配置文本可以包括表結(jié)構(gòu)監(jiān)控規(guī)則配置文本和表字段監(jiān)控規(guī)則配置文本。
表結(jié)構(gòu)監(jiān)控規(guī)則配置文本定義的信息可以包括:監(jiān)控規(guī)則名稱、庫名和表名中的一種或多種。
該表名支持多個表的監(jiān)控,以“;”進(jìn)行分割,系統(tǒng)內(nèi)部可以循環(huán)遍歷每個表結(jié)構(gòu)分別進(jìn)行處理。
表結(jié)構(gòu)監(jiān)控規(guī)則包括同一數(shù)據(jù)庫中的自表結(jié)構(gòu)監(jiān)控和跨引擎的不同數(shù)據(jù)庫中的異表結(jié)構(gòu)監(jiān)控。自表結(jié)構(gòu)監(jiān)控對應(yīng)的表結(jié)構(gòu)監(jiān)控規(guī)則配置文本定義一個表名即可,異表結(jié)構(gòu)監(jiān)控對應(yīng)的表結(jié)構(gòu)監(jiān)控規(guī)則配置文本需定義至少兩個表名。
表字段監(jiān)控規(guī)則配置文本定義的信息可以包括:監(jiān)控規(guī)則名稱、庫名、表名、監(jiān)控指標(biāo)、比較類型、報警觸發(fā)下限、報警觸發(fā)上限、查詢條件、時間字段、分組字段和監(jiān)控時間偏移中的一種或多中。
其中,監(jiān)控指標(biāo)可以用于定義監(jiān)控的具體表字段名稱;
比較類型可以用于定義數(shù)據(jù)比較的方法,例如數(shù)值比較或環(huán)比比較,環(huán)比比較又包括日環(huán)比(今天和昨天的數(shù)據(jù)進(jìn)行比較)、周環(huán)比(今天和7天前的數(shù)據(jù)進(jìn)行比較)等等;
報警觸發(fā)下限和報警觸發(fā)上限可以用于定義閾值,當(dāng)查詢結(jié)果不在閾值下限和閾值上限之間,則會觸發(fā)報警;
查詢條件可以用于定義數(shù)據(jù)篩選條件;
監(jiān)控時間偏移可以用于定義當(dāng)前查詢得到的數(shù)據(jù)是當(dāng)前數(shù)據(jù),還是昨天的數(shù)據(jù)亦或前天的數(shù)據(jù);
時間字段可以用于定義數(shù)據(jù)篩選時間;
分組字段可以用于定義對某個維度進(jìn)行定義。例如按城市維度分組,則以某個城市為單位進(jìn)行數(shù)據(jù)監(jiān)控。
表字段監(jiān)控規(guī)則配置文本中的比較類型包括數(shù)值比較和環(huán)比比較。數(shù)值比較對應(yīng)的表字段監(jiān)控規(guī)則配置文本分別定義一個庫名和表名即可,環(huán)比比較對應(yīng)的表字段監(jiān)控規(guī)則配置文本需分別定義至少兩個庫名和表名。
在創(chuàng)建監(jiān)控相關(guān)配置信息時,通過選取監(jiān)控規(guī)則的名稱,即可調(diào)取相應(yīng)的監(jiān)控規(guī)則配置文本,進(jìn)而通過監(jiān)控規(guī)則配置文本中的具體規(guī)則查詢待監(jiān)控的表信息,并進(jìn)行比較運(yùn)算。所以,如果需要改變監(jiān)控規(guī)則配置文本中的具體規(guī)則時,只需改變監(jiān)控規(guī)則配置文本對應(yīng)的信息即可,無需改變監(jiān)控相關(guān)配置信息,操作更加方便。
步驟14,根據(jù)獲取的報警信息,生成報警配置文本。
報警配置文本定義的信息可以包括:報警級別、報警組名稱、報警類型、報警內(nèi)容中的一種或多種。
報警組配置信息主要用來分組批量管理報警通知人員,聯(lián)系方式包括郵件、手機(jī)號、聊天工具等。將相同業(yè)務(wù)的人員分配到同一個組內(nèi),形成一個報警組,當(dāng)監(jiān)控觸發(fā)報警時,該組內(nèi)的人員均可收到報警通知,報警組內(nèi)的任何人員都可以對產(chǎn)生報警的監(jiān)控數(shù)據(jù)進(jìn)行處理和恢復(fù)。
報警配置文本中的報警組名稱關(guān)聯(lián)報警組配置文本的信息,報警組配置文本定義的信息可以包括:報警組名稱、發(fā)送郵箱、抄送郵箱、用于獲取短信的號碼和聊天工具的成員賬號。聊天工具可以包括微信、qq或系統(tǒng)組建的聊天工具。
報警配置文本中的報警組信息可以關(guān)聯(lián)報警組配置信息,在報警配置文本中通過添加報警組的名稱,即可調(diào)用報警組配置信息中相關(guān)的報警組具體信息。所以,當(dāng)有新的人員加入業(yè)務(wù)時,只需要將該人員加入到報警組內(nèi),而無需修改報警配置文本和其他配置文本。報警組配置可以在不同的監(jiān)控任務(wù)中重復(fù)使用。
其中每項信息中可以設(shè)置多條信息,如發(fā)送郵箱的信息中可以設(shè)置多個郵箱號,并用“;”隔開。
步驟102,根據(jù)所述監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令。
在本發(fā)明實(shí)施例的一種優(yōu)選示例中,步驟102可以具體包括如下步驟:
步驟21,根據(jù)所述觸發(fā)方式配置文本,觸發(fā)監(jiān)控任務(wù)命令。
該觸發(fā)方式配置文本還包括該監(jiān)控任務(wù)命令對應(yīng)的鏈接地址,打開該鏈接即可運(yùn)行該監(jiān)控任務(wù)命令。
步驟22,根據(jù)所述監(jiān)控任務(wù)命令調(diào)取所述數(shù)據(jù)庫配置文本和所述監(jiān)控規(guī)則配置文本。
運(yùn)行該監(jiān)控任務(wù)命令后,可以根據(jù)一個id號調(diào)取監(jiān)控任務(wù)對應(yīng)的其他具體的監(jiān)控任務(wù)配置文本,如數(shù)據(jù)庫配置文本和所述監(jiān)控規(guī)則配置文本。
根據(jù)所述監(jiān)控任務(wù)命令還可以調(diào)取報警配置文本,用于生成報警指令。
步驟23,根據(jù)調(diào)取的數(shù)據(jù)庫配置文本生成連接指令。
步驟24,根據(jù)調(diào)取的監(jiān)控規(guī)則配置文本生成查詢指令。
在具體實(shí)現(xiàn)中,可以根據(jù)監(jiān)控規(guī)則配置文本的表名、字段名、查詢條件、分組字段和監(jiān)控時間偏移拼裝成一條sql指令。拼裝成一條sql指令可以形如:select字段1,字段2,字段nfrom庫名.表名where查詢條件groupby分組字段。利用該sql指令可以查詢數(shù)據(jù)庫中的待監(jiān)控的表信息。
步驟24,根據(jù)監(jiān)控規(guī)則配置文本生成判斷指令。
該監(jiān)控執(zhí)行指令至少包括連接指令、查詢指令和判斷指令,以完成監(jiān)控任務(wù)。
步驟103,根據(jù)所述監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的待監(jiān)控的表信息。
本發(fā)明實(shí)施例通過根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本,根據(jù)監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令,再根據(jù)監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的表信息,實(shí)現(xiàn)了數(shù)據(jù)監(jiān)控的可配置化操作,避免了監(jiān)控代碼的重復(fù)開發(fā),節(jié)省了數(shù)據(jù)監(jiān)控的成本,并且本方法操作簡單,更加方便用戶使用。
參照圖3,示出了本發(fā)明實(shí)施例提供的另一種可配置化的數(shù)據(jù)監(jiān)控方法的流程圖。圖3所示的實(shí)施例為基于圖1中步驟103細(xì)化的實(shí)施例,所以與圖1相同的內(nèi)容可參見圖1所示的實(shí)施例。圖3所示方法具體可以包括以下步驟。
步驟301,根據(jù)所述數(shù)據(jù)庫配置文本生成的連接指令,連接待監(jiān)控的數(shù)據(jù)庫。
步驟302,根據(jù)所述監(jiān)控規(guī)則配置文本生成的查詢指令,查詢所述數(shù)據(jù)庫中待監(jiān)控的表信息。
待監(jiān)控的表信息包括表結(jié)構(gòu)信息和表字段信息。
表結(jié)構(gòu)信息包括表中所有的字段的名稱和類型,當(dāng)表中字段的名稱和類型發(fā)生變化或不一致時,則表明表結(jié)構(gòu)信息發(fā)生了異常。對表結(jié)構(gòu)信息的監(jiān)控方式包括:同一數(shù)據(jù)庫的自表結(jié)構(gòu)比較和不同引擎的數(shù)據(jù)庫的異表結(jié)構(gòu)比較。
步驟303,根據(jù)所述監(jiān)控規(guī)則配置文本生成的判斷指令,判斷查詢到的所述表信息是否出現(xiàn)異常。
步驟303具體可以包括:
步驟31,若所查詢到的所述表信息為表結(jié)構(gòu)信息,則執(zhí)行:
①若查詢到的所述表結(jié)構(gòu)信息為自表結(jié)構(gòu)信息,則對比當(dāng)前查詢結(jié)果與第一次的查詢結(jié)果,以判斷所述表結(jié)構(gòu)信息是否出現(xiàn)異常。
對于同一數(shù)據(jù)庫的自表結(jié)構(gòu)比較,如果是第一次查詢,直接保存第一次查詢結(jié)果;以后每次查詢時,分別獲取當(dāng)前的查詢結(jié)果和上一次保存的查詢結(jié)果,然后將兩次查詢結(jié)果循環(huán)遍歷進(jìn)行比較。如果發(fā)現(xiàn)兩個查詢結(jié)果中的字段的名稱和類型不完全一致,則說明當(dāng)前表結(jié)構(gòu)信息出現(xiàn)異常。并將出現(xiàn)異常的字段信息包含在報警信息中發(fā)送給報警組。
②若查詢到所述表結(jié)構(gòu)信息為不同數(shù)據(jù)庫中的異表結(jié)構(gòu)信息,則將查詢得到的異表結(jié)構(gòu)信息轉(zhuǎn)換為同一類型的信息,以進(jìn)行相互比較,判斷所述表結(jié)構(gòu)信息是否出現(xiàn)異常。
對于跨引擎的數(shù)據(jù)庫的異表結(jié)構(gòu),他們的表結(jié)構(gòu)的類型通常不一致,所以在進(jìn)行比較時,需要通過類型映射表將不同的表結(jié)構(gòu)信息轉(zhuǎn)換為同一類型的表結(jié)構(gòu)信息,然后再進(jìn)行循環(huán)遍歷比較。如果比較結(jié)果不完全一致,則說明當(dāng)前表結(jié)構(gòu)信息出現(xiàn)異常。并將出現(xiàn)異常的字段信息包含在報警信息中發(fā)送給報警組。
步驟32,若查詢到的表信息為表字段信息,則執(zhí)行:
①若進(jìn)行數(shù)值比較,則將查詢結(jié)果與閾值進(jìn)行對比,以判斷所述表字段信息是否出現(xiàn)異常;
在具體實(shí)現(xiàn)中,如果表字段信息有分組,查詢結(jié)果為一組數(shù)值,需要進(jìn)行循環(huán)遍歷比較。將查詢結(jié)果與閾值進(jìn)行比較,該閾值為監(jiān)控規(guī)則配置文本中的報警觸發(fā)下限和報警觸發(fā)上限設(shè)定的。若查詢結(jié)果不在閾值范圍內(nèi),則表明該表字段信息發(fā)生了異常。
②若進(jìn)行環(huán)比比較,則將不同時間上的查詢結(jié)果進(jìn)行比較運(yùn)算,以判斷所述表字段信息是否出現(xiàn)異常。
在具體實(shí)現(xiàn)中,在進(jìn)行環(huán)比比較時,會得到兩個查詢結(jié)果,如有分組,查詢結(jié)果為兩組數(shù)據(jù),需要進(jìn)行循環(huán)遍歷比較。在對兩個查詢結(jié)果進(jìn)行比較時,先進(jìn)行比值運(yùn)算,例如,進(jìn)行日環(huán)比時,將今天的查詢結(jié)果除以昨天的查詢結(jié)果。再將比值運(yùn)算的結(jié)果與閾值進(jìn)行比較,該閾值為監(jiān)控規(guī)則配置文本中的報警觸發(fā)下限和報警觸發(fā)上限設(shè)定的閾值。
若比值運(yùn)算的結(jié)果不在閾值范圍內(nèi),則表明該表字段信息發(fā)生了異常。
步驟304,若查詢到的所述表信息出現(xiàn)異常,則根據(jù)所述報警配置文本生成的報警指令,生成報警通知。
在具體實(shí)現(xiàn)中,可以通過結(jié)合監(jiān)控任務(wù)命令和監(jiān)控執(zhí)行配置文本中的信息,來實(shí)現(xiàn)對數(shù)據(jù)庫中的待監(jiān)控的表信息的監(jiān)控。
本發(fā)明實(shí)施例通過根據(jù)監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令,再根據(jù)監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的表信息,實(shí)現(xiàn)了數(shù)據(jù)監(jiān)控的可配置化操作,避免了監(jiān)控代碼的重復(fù)開發(fā),節(jié)省了數(shù)據(jù)監(jiān)控的成本,并且本方法操作簡單,更加方便用戶使用。
參照圖4,示出了本發(fā)明實(shí)施例提供的一種可配置化的數(shù)據(jù)監(jiān)控裝置的框圖,該裝置具體可以包括:
獲取模塊401,用于獲取用戶在網(wǎng)頁頁面上設(shè)置的監(jiān)控任務(wù)信息。
監(jiān)控任務(wù)配置文本生成模塊402,用于根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本。
在本發(fā)明實(shí)施例的一種優(yōu)選示例中,監(jiān)控任務(wù)配置文本生成模塊402具體可以包括:
觸發(fā)方式配置文本生成單元,用于根據(jù)獲取的監(jiān)控觸發(fā)方式信息,生成觸發(fā)方式配置文本;
數(shù)據(jù)庫配置文本生成單元,用于根據(jù)獲取的待監(jiān)控的數(shù)據(jù)庫的信息,生成數(shù)據(jù)庫配置文本;
監(jiān)控規(guī)則配置文本生成單元,用于根據(jù)獲取的針對所述表信息設(shè)置的監(jiān)控規(guī)則信息,生成監(jiān)控規(guī)則配置文本;
報警配置文本生成單元,用于根據(jù)獲取的報警信息,生成報警配置文本。
監(jiān)控執(zhí)行指令生成模塊403,用于根據(jù)所述監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令。
在本發(fā)明實(shí)施例的一種優(yōu)選示例中,監(jiān)控執(zhí)行指令生成模塊403具體可以包括:
監(jiān)控任務(wù)命令觸發(fā)單元,用于根據(jù)所述觸發(fā)方式配置文本,觸發(fā)監(jiān)控任務(wù)命令;
調(diào)取單元,用于根據(jù)所述監(jiān)控任務(wù)命令調(diào)取所述數(shù)據(jù)庫配置文本和所述監(jiān)控規(guī)則配置文本;
連接指令生成單元,用于根據(jù)調(diào)取的所述數(shù)據(jù)庫配置文本生成連接指令;
查詢指令和判斷指令生成單元,用于根據(jù)調(diào)取的所述監(jiān)控規(guī)則配置文本生成查詢指令和判斷指令。
數(shù)據(jù)庫監(jiān)控模塊404,用于根據(jù)所述監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的待監(jiān)控的表信息。
在本發(fā)明實(shí)施例的一種優(yōu)選示例中,數(shù)據(jù)庫監(jiān)控模塊404具體可以包括:
連接單元,用于根據(jù)所述數(shù)據(jù)庫配置文本生成的連接指令,連接所述待監(jiān)控的數(shù)據(jù)庫。
查詢單元,用于根據(jù)所述監(jiān)控規(guī)則配置文本生成的查詢指令,查詢所述數(shù)據(jù)庫中待監(jiān)控的表信息。
判斷單元,用于根據(jù)所述監(jiān)控規(guī)則配置文本生成的判斷指令,判斷查詢到的所述表信息是否出現(xiàn)異常。
該判斷單元具體可以包括:
第一判斷子單元,用于若查詢到的所述表結(jié)構(gòu)信息為自表結(jié)構(gòu)信息,則對比當(dāng)前查詢結(jié)果與第一次的查詢結(jié)果,以判斷所述表結(jié)構(gòu)信息是否出現(xiàn)異常;
第二判斷子單元,用于若查詢到所述表結(jié)構(gòu)信息為不同數(shù)據(jù)庫中的異表結(jié)構(gòu)信息,則將查詢得到的異表結(jié)構(gòu)信息轉(zhuǎn)換為同一類型的信息,以進(jìn)行相互比較,判斷所述表結(jié)構(gòu)信息是否出現(xiàn)異常;
第三判斷子單元,用于若查詢到的表信息為表字段信息,且進(jìn)行數(shù)值比較,則將查詢結(jié)果與閾值進(jìn)行對比,以判斷所述表字段信息是否出現(xiàn)異常;
第四判斷子單元,用于若查詢到的表信息為表字段信息,且進(jìn)行環(huán)比比較,則將不同時間上的查詢結(jié)果進(jìn)行比較運(yùn)算,以判斷所述表字段信息是否出現(xiàn)異常。
報警通知生成單元,用于若查詢到的所述表信息出現(xiàn)異常,則根據(jù)所述報警配置文本生成的報警指令,生成報警通知。
本發(fā)明實(shí)施例實(shí)現(xiàn)了數(shù)據(jù)監(jiān)控的可配置化操作,避免了監(jiān)控代碼的重復(fù)開發(fā),節(jié)省了數(shù)據(jù)監(jiān)控的成本,并且本方法操作簡單,更加方便用戶使用。
參照圖5,示出了本發(fā)明實(shí)施例提供的一種服務(wù)器的框圖,該服務(wù)器具體可以包括:
處理器501;以及
存儲器502,用于存儲實(shí)現(xiàn)可配置化的數(shù)據(jù)監(jiān)控方法的程序,該設(shè)備通電并通過所述處理器501運(yùn)行該可配置化的數(shù)據(jù)監(jiān)控方法的程序后,執(zhí)行下述步驟:
根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本;
根據(jù)所述監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令;
根據(jù)所述監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的待監(jiān)控的表信息。
本發(fā)明實(shí)施例還提供了一種計算機(jī)存儲介質(zhì),所述計算機(jī)存儲介質(zhì)存儲有一條或多條計算機(jī)指令,所述計算機(jī)指令被執(zhí)行時實(shí)現(xiàn)圖1所示的實(shí)施例和圖2所示的實(shí)施例中的可配置化的數(shù)據(jù)監(jiān)控方法。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實(shí)施。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在計算機(jī)可讀存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實(shí)施例或者實(shí)施例的某些部分所述的方法。
最后應(yīng)說明的是:以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
本發(fā)明公開a1、一種可配置化的數(shù)據(jù)監(jiān)控方法,包括:
根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本;
根據(jù)所述監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令;
根據(jù)所述監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的待監(jiān)控的表信息。
a2、如a1所述的方法中,所述根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本的步驟之前,包括:
獲取用戶在網(wǎng)頁頁面上設(shè)置的監(jiān)控任務(wù)信息。
a3、如根據(jù)a2所述的方法中,所述根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本的步驟,包括:
根據(jù)獲取的監(jiān)控觸發(fā)方式信息,生成觸發(fā)方式配置文本;
根據(jù)獲取的待監(jiān)控的數(shù)據(jù)庫的信息,生成數(shù)據(jù)庫配置文本;
根據(jù)獲取的針對所述表信息設(shè)置的監(jiān)控規(guī)則信息,生成監(jiān)控規(guī)則配置文本;
根據(jù)獲取的報警信息,生成報警配置文本。
a4、如a3所述的方法中,根據(jù)所述監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令的步驟,包括:
根據(jù)所述觸發(fā)方式配置文本,觸發(fā)監(jiān)控任務(wù)命令;
根據(jù)所述監(jiān)控任務(wù)命令調(diào)取所述數(shù)據(jù)庫配置文本和所述監(jiān)控規(guī)則配置文本;
根據(jù)調(diào)取的所述數(shù)據(jù)庫配置文本生成連接指令;
根據(jù)調(diào)取的所述監(jiān)控規(guī)則配置文本生成查詢指令和判斷指令。
a5、如a3所述的方法中,根據(jù)所述監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的待監(jiān)控的表信息的步驟包括:
根據(jù)所述數(shù)據(jù)庫配置文本生成的連接指令,連接所述待監(jiān)控的數(shù)據(jù)庫;
根據(jù)所述監(jiān)控規(guī)則配置文本生成的查詢指令,查詢所述數(shù)據(jù)庫中待監(jiān)控的表信息;
根據(jù)所述監(jiān)控規(guī)則配置文本生成的判斷指令,判斷查詢到的所述表信息是否出現(xiàn)異常;
若查詢到的所述表信息出現(xiàn)異常,則根據(jù)所述報警配置文本生成的報警指令,生成報警通知。
a6、如a5所述的方法中,判斷查詢到的所述表信息是否出現(xiàn)異常的步驟,包括:
若所查詢到的所述表信息為表結(jié)構(gòu)信息,則執(zhí)行:
若查詢到的所述表結(jié)構(gòu)信息為自表結(jié)構(gòu)信息,則對比當(dāng)前查詢結(jié)果與第一次的查詢結(jié)果,以判斷所述表結(jié)構(gòu)信息是否出現(xiàn)異常;
若查詢到所述表結(jié)構(gòu)信息為不同數(shù)據(jù)庫中的異表結(jié)構(gòu)信息,則將查詢得到的異表結(jié)構(gòu)信息轉(zhuǎn)換為同一類型的信息,以進(jìn)行相互比較,判斷所述表結(jié)構(gòu)信息是否出現(xiàn)異常。
a7、如a5所述的方法中,判斷查詢到的所述表信息是否出現(xiàn)異常的步驟,還包括:
若查詢到的表信息為表字段信息,且進(jìn)行數(shù)值比較,則將查詢結(jié)果與閾值進(jìn)行對比,以判斷所述表字段信息是否出現(xiàn)異常;
若查詢到的表信息為表字段信息,且進(jìn)行環(huán)比比較,則將不同時間上的查詢結(jié)果進(jìn)行比較運(yùn)算,以判斷所述表字段信息是否出現(xiàn)異常。
本發(fā)明還公布了b8、一種可配置化的數(shù)據(jù)監(jiān)控裝置,包括:
監(jiān)控任務(wù)配置文本生成模塊,用于根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本;
監(jiān)控執(zhí)行指令生成模塊,用于根據(jù)所述監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令;
數(shù)據(jù)庫監(jiān)控模塊,用于根據(jù)所述監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的待監(jiān)控的表信息。
b9、如b8所述的裝置中,所述裝置還包括:
獲取模塊,用于獲取用戶在網(wǎng)頁頁面上設(shè)置的監(jiān)控任務(wù)信息。
b10、如b9所述的裝置中,所述監(jiān)控任務(wù)配置文本生成模塊包括:
觸發(fā)方式配置文本生成單元,用于根據(jù)獲取的監(jiān)控觸發(fā)方式信息,生成觸發(fā)方式配置文本;
數(shù)據(jù)庫配置文本生成單元,用于根據(jù)獲取的待監(jiān)控的數(shù)據(jù)庫的信息,生成數(shù)據(jù)庫配置文本;
監(jiān)控規(guī)則配置文本生成單元,用于根據(jù)獲取的針對所述表信息設(shè)置的監(jiān)控規(guī)則信息,生成監(jiān)控規(guī)則配置文本;
報警配置文本生成單元,用于根據(jù)獲取的報警信息,生成報警配置文本。
b11、如b10所述的裝置中,所述監(jiān)控執(zhí)行指令生成模塊包括:
監(jiān)控任務(wù)命令觸發(fā)單元,用于根據(jù)所述觸發(fā)方式配置文本,觸發(fā)監(jiān)控任務(wù)命令;
調(diào)取單元,用于根據(jù)所述監(jiān)控任務(wù)命令調(diào)取所述數(shù)據(jù)庫配置文本和所述監(jiān)控規(guī)則配置文本;
連接指令生成單元,用于根據(jù)調(diào)取的所述數(shù)據(jù)庫配置文本生成連接指令;
查詢指令和判斷指令生成單元,用于根據(jù)調(diào)取的所述監(jiān)控規(guī)則配置文本生成查詢指令和判斷指令。
b12、如b10所述的裝置中,所述數(shù)據(jù)庫監(jiān)控模塊包括:
連接單元,用于根據(jù)所述數(shù)據(jù)庫配置文本生成的連接指令,連接所述待監(jiān)控的數(shù)據(jù)庫;
查詢單元,用于根據(jù)所述監(jiān)控規(guī)則配置文本生成的查詢指令,查詢所述數(shù)據(jù)庫中待監(jiān)控的表信息;
判斷單元,用于根據(jù)所述監(jiān)控規(guī)則配置文本生成的判斷指令,判斷查詢到的所述表信息是否出現(xiàn)異常;
報警通知生成單元,用于若查詢到的所述表信息出現(xiàn)異常,則根據(jù)所述報警配置文本生成的報警指令,生成報警通知。
b13、如b12所述的裝置中,所述判斷單元包括:
第一判斷子單元,用于若查詢到的所述表結(jié)構(gòu)信息為自表結(jié)構(gòu)信息,則對比當(dāng)前查詢結(jié)果與第一次的查詢結(jié)果,以判斷所述表結(jié)構(gòu)信息是否出現(xiàn)異常;
第二判斷子單元,用于若查詢到所述表結(jié)構(gòu)信息為不同數(shù)據(jù)庫中的異表結(jié)構(gòu)信息,則將查詢得到的異表結(jié)構(gòu)信息轉(zhuǎn)換為同一類型的信息,以進(jìn)行相互比較,判斷所述表結(jié)構(gòu)信息是否出現(xiàn)異常。
b14、如b12所述的裝置中,所述判斷單元還包括:
第三判斷子單元,用于若查詢到的表信息為表字段信息,且進(jìn)行數(shù)值比較,則將查詢結(jié)果與閾值進(jìn)行對比,以判斷所述表字段信息是否出現(xiàn)異常;
第四判斷子單元,用于若查詢到的表信息為表字段信息,且進(jìn)行環(huán)比比較,則將不同時間上的查詢結(jié)果進(jìn)行比較運(yùn)算,以判斷所述表字段信息是否出現(xiàn)異常。
本發(fā)明還公布了c15、一種服務(wù)器,包括:
處理器;以及
存儲器,用于存儲實(shí)現(xiàn)可配置化的數(shù)據(jù)監(jiān)控方法的程序,該設(shè)備通電并通過所述處理器運(yùn)行該可配置化的數(shù)據(jù)監(jiān)控方法的程序后,執(zhí)行下述步驟:
根據(jù)獲取的監(jiān)控任務(wù)信息生成監(jiān)控任務(wù)配置文本;
根據(jù)所述監(jiān)控任務(wù)配置文本生成監(jiān)控執(zhí)行指令;
根據(jù)所述監(jiān)控執(zhí)行指令監(jiān)控數(shù)據(jù)庫中的待監(jiān)控的表信息。
本發(fā)明還公布了d16、一種計算機(jī)存儲介質(zhì),所述計算機(jī)存儲介質(zhì)存儲有一條或多條計算機(jī)指令,所述計算機(jī)指令被執(zhí)行時實(shí)現(xiàn)如a1-a7中任一項所述的方法。