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