本申請涉及云計算,尤其涉及一種基于prometheus集群的監(jiān)控方法、裝置、電子設(shè)備、計算機存儲介質(zhì)和計算機程序產(chǎn)品。
背景技術(shù):
1、隨著云原生技術(shù)的持續(xù)發(fā)展,容器與微服務(wù)這些概念的不斷深入,作為云原生計算基金會(cloud?native?computing?foundation,cncf)王牌項目的kubernetes(k8s)已經(jīng)成為整個云原生領(lǐng)域的絕對主流,是事實上的標(biāo)準(zhǔn)開源容器編排器。prometheus作為與kubernetes搭配的監(jiān)控平臺,憑借其優(yōu)越的性能、強悍的查詢和高效的采樣,正在逐步成為云原生時代主流的監(jiān)控產(chǎn)品。
2、然而,雖然prometheus設(shè)計優(yōu)越,能夠支持強大的多維度數(shù)據(jù)模型,但有一個不足便是缺乏集群化的方案,這使得在大規(guī)模集群下,監(jiān)控數(shù)據(jù)急劇增長之后,單個prometheus在存儲、采樣等方面容易達到性能瓶頸,難以滿足使用要求。
技術(shù)實現(xiàn)思路
1、本申請?zhí)峁┮环N基于prometheus集群的監(jiān)控方法、裝置、電子設(shè)備、計算機存儲介質(zhì)和計算機程序產(chǎn)品。
2、本申請的技術(shù)方案是這樣實現(xiàn)的:
3、本申請?zhí)峁┝艘环N基于prometheus集群的監(jiān)控方法,應(yīng)用于監(jiān)控系統(tǒng),所述監(jiān)控系統(tǒng)包括prometheus集群,所述prometheus集群包括多個prometheus節(jié)點,所述方法包括:
4、獲取所述prometheus集群中各個prometheus節(jié)點的當(dāng)前負(fù)載信息;
5、根據(jù)所述當(dāng)前負(fù)載信息,確定所述各個prometheus節(jié)點對應(yīng)的動態(tài)負(fù)載因子;
6、根據(jù)所述動態(tài)負(fù)載因子,確定所述各個prometheus節(jié)點對應(yīng)的虛擬節(jié)點數(shù)量;
7、獲取所述prometheus集群對應(yīng)的采集任務(wù),使用一致性哈希算法將所述各個prometheus節(jié)點對應(yīng)的虛擬節(jié)點映射到哈希環(huán)上,并對所述采集任務(wù)進行分配,得到所述哈希環(huán)上各個虛擬節(jié)點對應(yīng)的子任務(wù)集;所述采集任務(wù)用于采集監(jiān)控對象的監(jiān)控數(shù)據(jù),所述采集任務(wù)包括多個子任務(wù),所述子任務(wù)集包括所述多個子任務(wù)中的至少一個子任務(wù);
8、利用所述各個虛擬節(jié)點對應(yīng)的prometheus節(jié)點,執(zhí)行所述各個虛擬節(jié)點對應(yīng)的子任務(wù)集中的子任務(wù),得到采集結(jié)果。
9、本申請?zhí)峁┮环N基于prometheus集群的監(jiān)控裝置,應(yīng)用于監(jiān)控系統(tǒng),所述監(jiān)控系統(tǒng)包括prometheus集群,所述prometheus集群包括多個prometheus節(jié)點,所述裝置包括:
10、獲取模塊,用于獲取所述prometheus集群中各個prometheus節(jié)點的當(dāng)前負(fù)載信息;
11、第一確定模塊,用于根據(jù)所述當(dāng)前負(fù)載信息,確定所述各個prometheus節(jié)點對應(yīng)的動態(tài)負(fù)載因子;
12、第二確定模塊,用于根據(jù)所述動態(tài)負(fù)載因子,確定所述各個prometheus節(jié)點對應(yīng)的虛擬節(jié)點數(shù)量;
13、分配模塊,用于獲取所述prometheus集群對應(yīng)的采集任務(wù),使用一致性哈希算法將所述各個prometheus節(jié)點對應(yīng)的虛擬節(jié)點映射到哈希環(huán)上,并對所述采集任務(wù)進行分配,得到所述哈希環(huán)上各個虛擬節(jié)點對應(yīng)的子任務(wù)集;所述采集任務(wù)用于采集監(jiān)控對象的監(jiān)控數(shù)據(jù),所述采集任務(wù)包括多個子任務(wù),所述子任務(wù)集包括所述多個子任務(wù)中的至少一個子任務(wù);
14、執(zhí)行模塊,用于利用所述各個虛擬節(jié)點對應(yīng)的prometheus節(jié)點,執(zhí)行所述各個虛擬節(jié)點對應(yīng)的子任務(wù)集中的子任務(wù),得到采集結(jié)果。
15、本申請?zhí)峁┮环N電子設(shè)備,所述設(shè)備包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)前述一個或多個技術(shù)方案提供的基于prometheus集群的監(jiān)控方法。
16、本申請?zhí)峁┮环N計算機存儲介質(zhì),所述計算機存儲介質(zhì)存儲有計算機程序;所述計算機程序被執(zhí)行后能夠?qū)崿F(xiàn)前述一個或多個技術(shù)方案提供的基于prometheus集群的監(jiān)控方法。
17、本申請?zhí)峁┮环N計算機程序產(chǎn)品,包括計算機程序,該計算機程序被處理器執(zhí)行時實現(xiàn)前述一個或多個技術(shù)方案提供的基于prometheus集群的監(jiān)控方法。
18、本申請實施例提供一種基于prometheus集群的監(jiān)控方法、裝置、電子設(shè)備、計算機存儲介質(zhì)和計算機程序產(chǎn)品,該方法可以應(yīng)用于監(jiān)控系統(tǒng),監(jiān)控系統(tǒng)包括prometheus集群,所述prometheus集群包括多個prometheus節(jié)點,該方法包括:獲取所述prometheus集群中各個prometheus節(jié)點的當(dāng)前負(fù)載信息;根據(jù)所述當(dāng)前負(fù)載信息,確定所述各個prometheus節(jié)點對應(yīng)的動態(tài)負(fù)載因子;根據(jù)所述動態(tài)負(fù)載因子,確定所述各個prometheus節(jié)點對應(yīng)的虛擬節(jié)點數(shù)量;獲取所述prometheus集群對應(yīng)的采集任務(wù),使用一致性哈希算法將所述各個prometheus節(jié)點對應(yīng)的虛擬節(jié)點映射到哈希環(huán)上,并對所述采集任務(wù)進行分配,得到所述哈希環(huán)上各個虛擬節(jié)點對應(yīng)的子任務(wù)集;所述采集任務(wù)用于采集監(jiān)控對象的監(jiān)控數(shù)據(jù),所述采集任務(wù)包括多個子任務(wù),所述子任務(wù)集包括所述多個子任務(wù)中的至少一個子任務(wù);利用所述各個虛擬節(jié)點對應(yīng)的prometheus節(jié)點,執(zhí)行所述各個虛擬節(jié)點對應(yīng)的子任務(wù)集中的子任務(wù),得到采集結(jié)果。
19、可以看出,與相關(guān)技術(shù)中采用單個prometheus執(zhí)行采集任務(wù)相比,本申請實施例利用包括多個prometheus節(jié)點的prometheus集群執(zhí)行采集任務(wù),如此,可以解決單個prometheus采集能力有瓶頸的問題;另外,本申請實施例根據(jù)prometheus集群各個prometheus節(jié)點的當(dāng)前負(fù)載信息,確定動態(tài)負(fù)載因子,進而采用基于動態(tài)負(fù)載因子的一致性哈希算法完成prometheus集群內(nèi)各個prometheus節(jié)點的任務(wù)分配,保證prometheus集群內(nèi)各個prometheus節(jié)點的任務(wù)均衡以及負(fù)載均衡,提高監(jiān)控系統(tǒng)的任務(wù)處理能力和可靠性,具有更好的適用性。
1.一種基于prometheus集群的監(jiān)控方法,其特征在于,應(yīng)用于監(jiān)控系統(tǒng),所述監(jiān)控系統(tǒng)包括prometheus集群,所述prometheus集群包括多個prometheus節(jié)點,所述方法包括:
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述當(dāng)前負(fù)載信息包括內(nèi)存利用率和cpu利用率,所述根據(jù)所述當(dāng)前負(fù)載信息,確定所述各個prometheus節(jié)點對應(yīng)的動態(tài)負(fù)載因子,包括:
3.根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述動態(tài)負(fù)載因子為大于0且小于1的值,所述根據(jù)所述動態(tài)負(fù)載因子,確定所述各個prometheus節(jié)點對應(yīng)的虛擬節(jié)點數(shù)量,包括:
4.根據(jù)權(quán)利要求1所述的方法,所述對所述采集任務(wù)進行分配,得到所述哈希環(huán)上各個虛擬節(jié)點對應(yīng)的子任務(wù)集,包括:
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述采集結(jié)果包括所述子任務(wù)集中各個子任務(wù)對應(yīng)的目標(biāo)監(jiān)控數(shù)據(jù),所述方法還包括:
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,在獲取所述prometheus集群中各個prometheus節(jié)點的當(dāng)前負(fù)載信息之前,所述方法還包括:
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述方法還包括:
8.一種基于prometheus集群的監(jiān)控裝置,其特征在于,應(yīng)用于監(jiān)控系統(tǒng),所述監(jiān)控系統(tǒng)包括prometheus集群,所述prometheus集群包括多個prometheus節(jié)點,所述裝置包括:
9.一種電子設(shè)備,其特征在于,所述設(shè)備包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執(zhí)行所述程序時實現(xiàn)權(quán)利要求1至7任一項所述的方法。
10.一種計算機存儲介質(zhì),其上存儲有計算機程序,其特征在于,該計算機程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1至7任一項所述的方法。
11.一種計算機程序產(chǎn)品,包括計算機程序,其特征在于,所述計算機程序在被處理器執(zhí)行時實現(xiàn)根據(jù)權(quán)利要求1至7任一項所述的方法。