本發(fā)明實施例涉及業(yè)務(wù)監(jiān)控,具體涉及一種基于vm的業(yè)務(wù)監(jiān)控方法、系統(tǒng)、設(shè)備及存儲介質(zhì)。
背景技術(shù):
1、vm(victoriametrics,簡稱vm)是一個高性能、可擴展的監(jiān)控解決方案和時間序列數(shù)據(jù)庫,它特別適用于處理和存儲大量的監(jiān)控數(shù)據(jù)。
2、在業(yè)務(wù)監(jiān)控領(lǐng)域,隨著信息技術(shù)的快速發(fā)展,企業(yè)對于實時監(jiān)控和分析業(yè)務(wù)數(shù)據(jù)的需求日益增長。目前主流的技術(shù)解決方案之一是使用elk棧,即elasticsearch、logstash和kibana的組合。elk棧提供了一個強大的數(shù)據(jù)收集、存儲、搜索和可視化的平臺,但它也具有較大的限制:
3、1)elk棧的配置和管理復(fù)雜性
4、elk棧的每個組件都需要精心配置和管理,這不僅增加了技術(shù)棧的復(fù)雜性,也提高了學(xué)習(xí)成本和運營成本:
5、搭建配置復(fù)雜:elasticsearch、logstash和kibana的搭建和配置過程涉及多個步驟,elasticsearch需要配置集群、索引、映射和設(shè)置合適的分片和副本數(shù)量,而logstash需要配置輸入源、過濾器和輸出目的地,kibana則需要配置與elasticsearch的連接以及配置儀表板和可視化組件。
6、使用門檻和學(xué)習(xí)曲線陡峭:elk棧的學(xué)習(xí)曲線非常陡峭,需要掌握elasticsearch的查詢語言(如elasticsearch的dsl)來執(zhí)行復(fù)雜的搜索和分析。
7、運維成本高:隨著業(yè)務(wù)的增長,elk棧的維護和擴展也變得更加復(fù)雜,需要專業(yè)的運維團隊來管理。例如,當elasticsearch集群需要擴展時,可能需要重新配置分片和副本,以及處理數(shù)據(jù)遷移等問題。
8、2)elasticsearch的內(nèi)存占用和服務(wù)器成本
9、elasticsearch是使用java語言編寫的,java應(yīng)用程序通常需要較多的內(nèi)存來運行。這意味著為了運行elasticsearch,需要較高內(nèi)存配置的服務(wù)器,從而增加了成本。
10、內(nèi)存占用極高:elasticsearch在處理大量數(shù)據(jù)時,需要消耗大量的內(nèi)存資源。這不僅限制了單個服務(wù)器可以處理的數(shù)據(jù)量,也增加了對高性能服務(wù)器的需求。
11、購買服務(wù)器的成本很高:由于elasticsearch對內(nèi)存的需求,購買或租用能夠滿足其運行需求的服務(wù)器可能會非常昂貴,增加了企業(yè)的it支出。
12、3)kafka和elasticsearch的存儲壓縮效率低
13、kafka和elasticsearch在存儲數(shù)據(jù)時可能不會使用高效的壓縮算法,這會導(dǎo)致存儲成本增加。
14、存儲壓縮效率低:kafka和elasticsearch在存儲數(shù)據(jù)時沒有使用高效的壓縮算法,導(dǎo)致存儲成本增加。
15、存儲的成本很高:由于存儲效率低,企業(yè)可能需要購買更多的存儲資源來保存數(shù)據(jù),這會增加存儲成本。此外,更多的存儲資源也意味著更高的能源消耗和維護成本。
16、因此,發(fā)明一種能夠降低技術(shù)棧的復(fù)雜程度,減少對內(nèi)存和存儲的需求,從而降低整體運營成本的業(yè)務(wù)監(jiān)控方法成為了一個迫切的需求。
技術(shù)實現(xiàn)思路
1、為此,本發(fā)明實施例提供一種基于vm的業(yè)務(wù)監(jiān)控方法、系統(tǒng)、設(shè)備及存儲介質(zhì),以解決現(xiàn)有技術(shù)通過elk棧的方式進行業(yè)務(wù)監(jiān)控時技術(shù)棧復(fù)雜學(xué)習(xí)成本高、內(nèi)存占用極高存儲壓縮效率低的技術(shù)問題。
2、為了實現(xiàn)上述目的,本發(fā)明實施例提供如下技術(shù)方案:
3、根據(jù)本發(fā)明實施例的第一方面,提供了一種基于vm的業(yè)務(wù)監(jiān)控方法,所述方法應(yīng)用于victoriametrics,其包括:
4、s1、獲取大量時間序列數(shù)據(jù),對所述時間序列數(shù)據(jù)進行業(yè)務(wù)埋點并存儲至victoriametrics中;
5、s2、構(gòu)建一個http的api接口來捕獲和收集http請求中的cookie信息和header信息,將所述cookie信息和header信息存儲至victoriametrics中;
6、s3、利用go語言解析victoriametrics中已存儲的數(shù)據(jù)與新業(yè)務(wù)埋點后的時間序列數(shù)據(jù)并對比出數(shù)據(jù)變更字段和變更表及變更時間和變更主鍵;
7、s4、獲取業(yè)務(wù)監(jiān)控需求并利用grafana來編寫promql查詢語句并執(zhí)行,對存儲在victoriametrics中的時間序列數(shù)據(jù)進行分析和可視化。
8、進一步地,獲取大量時間序列數(shù)據(jù),對所述時間序列數(shù)據(jù)進行業(yè)務(wù)埋點并存儲至victoriametrics中,包括:
9、利用victoriametrics的指標存儲和查詢機制對所述時間序列數(shù)據(jù)進行處理。
10、進一步地,構(gòu)建一個http的api接口來捕獲和收集http請求中的cookie信息和header信息,包括:
11、定義至少一個api端點并確定所述api端點的訪問權(quán)限,利用所述api端點接收http請求;
12、對接收到的http請求進行分析并提取請求中的cookie和header信息。
13、進一步地,利用go語言解析victoriametrics中已存儲的數(shù)據(jù)與新業(yè)務(wù)埋點后的時間序列數(shù)據(jù)并對比出數(shù)據(jù)變更字段和變更表及變更時間和變更主鍵,包括:
14、使用victoriametrics的查詢api,獲取已存儲的時間序列數(shù)據(jù);
15、對比新業(yè)務(wù)埋點后的時間序列數(shù)據(jù)與已存儲的數(shù)據(jù),檢測數(shù)據(jù)變更;
16、通過對比分析,識別出變更的數(shù)據(jù)變更字段并將所有數(shù)據(jù)變更字段生成變更表;
17、從所述數(shù)據(jù)變更字段中獲取變更時間與變更主鍵。
18、進一步地,獲取業(yè)務(wù)監(jiān)控需求并利用grafana來編寫promql查詢語句并執(zhí)行,對存儲在victoriametrics中的時間序列數(shù)據(jù)進行分析和可視化,包括:
19、通過grafana儀表板與victoriametrics數(shù)據(jù)庫相連接,對數(shù)據(jù)進行實時的監(jiān)控和分析。
20、根據(jù)本發(fā)明實施例的第二方面,提供了一種基于vm的業(yè)務(wù)監(jiān)控系統(tǒng),所述系統(tǒng)包括:
21、業(yè)務(wù)埋點模塊,用于獲取大量時間序列數(shù)據(jù),對所述時間序列數(shù)據(jù)進行業(yè)務(wù)埋點并存儲至victoriametrics中;
22、信息捕獲模塊,用于構(gòu)建一個http的api接口來捕獲和收集http請求中的cookie信息和header信息,將所述cookie信息和header信息存儲至victoriametrics中;
23、解析模塊,用于利用go語言解析victoriametrics中已存儲的數(shù)據(jù)與新業(yè)務(wù)埋點后的時間序列數(shù)據(jù)并對比出數(shù)據(jù)變更字段和變更表及變更時間和變更主鍵;
24、監(jiān)控模塊,用于獲取業(yè)務(wù)監(jiān)控需求并利用grafana來編寫promql查詢語句并執(zhí)行,對存儲在victoriametrics中的時間序列數(shù)據(jù)進行分析和可視化。
25、根據(jù)本發(fā)明實施例的第三方面,提供了一種基于vm的業(yè)務(wù)監(jiān)控設(shè)備,所述設(shè)備包括:處理器和存儲器;
26、所述存儲器用于存儲一個或多個程序指令;
27、所述處理器,用于運行一個或多個程序指令,用以執(zhí)行如上任一項所述的一種基于vm的業(yè)務(wù)監(jiān)控方法的步驟。
28、根據(jù)本發(fā)明實施例的第四方面,提供了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)上存儲有計算機程序,所述計算機程序被處理器執(zhí)行時實現(xiàn)如上任一項所述一種基于vm的業(yè)務(wù)監(jiān)控方法的步驟。
29、本發(fā)明實施例具有如下優(yōu)點:
30、本發(fā)明實施例通過剔除elasticsearch和kafka從而降低操作復(fù)雜度,victoriametrics數(shù)據(jù)庫提升儲存查詢效率,有效降低人員學(xué)習(xí)運維工作量。能夠快速處理高吞吐量的數(shù)據(jù)寫入和查詢,可以做到每秒處理數(shù)百萬個數(shù)據(jù)點的同時顯著減少存儲空間需求,保持快速的查詢性能。在相同的硬件資源下,比其他監(jiān)控提供更高的性能和更低的成本。完全兼容prometheus的查詢語言,可以直接將存儲后端替換為prometheus。具有高性能、經(jīng)濟高效、可擴展性和易用性強的優(yōu)點,適合大規(guī)模監(jiān)控和日志記錄場景。