一種適用于云平臺資源監控的數據轉換器實現方法
【技術領域】
[0001]本發明涉及云平臺資源監控技術領域,特別是一種適用于云平臺資源監控的數據轉換器實現方法。
【背景技術】
[0002]云計算資源種類眾多,而云平臺肩負對各種資源進行監控。而面臨要各種使用場景的時候,需要花費大量的人力和物力來開發云平臺業務功能來支撐監控流程相似,但種類和細節不同的云平臺資源,無法快速響應用戶的需求,帶來以下問題:
[0003]—是重復開發的成本和時間投入,為了監控不同的資源類型,需要根據具體的資源進行開發。
[0004]二是資源監控數據不能需要適應各種使用場景。
[0005]三是二次開發效率低,數據格式不能統一,要花大量的人力資源去把數據整合成統一的形態。
[0006]五是大量邏輯類似上的數據,卻要大量的時間去開發。
[0007]六是一個原始數據不能轉換成多個用戶需要的數據,需要采集多種數據才能滿足需求。
[0008]為了以較少的成本投入即收集各種各樣的數據,需要有一種適用于云平臺資源監控數據轉換器的方法,運維人員可以自定義轉換器規則,對所有規則進行統一管理,一個數據集合通過一個或者多個轉換器規則就能轉換成用戶想要的數據。
【發明內容】
[0009]本發明解決的技術問題在于提供一種適用于云平臺資源監控的數據轉換器實現方法,解決重復開發類似數據的成本和時間問題、數據不能統一格式的問題、地域性文化差異導致數據展示不一樣等問題。
[0010]本發明解決上述技術問題的技術方案是:
[0011 ]所述的方法包括如下步驟:
[0012]步驟I:加載數據轉換器規則;
[0013]步驟2:收集監控原始數據集合;
[0014]步驟3:尋找原始數據集合對應的規則,若找到對應規則則執行步驟4,否則執行步驟9;
[0015]步驟4:名稱匹配是否成功,若是則執行步驟5,否則執行步驟9;
[0016]步驟5:單位匹配是否成功,若是則執行步驟6,否則執行步驟9;
[0017]步驟6:名稱轉換;
[0018]步驟7:單位轉換;
[0019]步驟8:值轉換,執行步驟IO;
[0020]步驟9:不需要進行數據轉換;
[0021]步驟10:完成。
[0022]所述的數據轉換器規則,每條規則由規則名稱、名稱轉換前的正則表達式、單位轉換前的正則表達式、替換名稱的正則表達式、替換單位的正則表達式、值替換的公式等組成;
[0023]所述的監控原始數據集合,每個數據集合都有零個或者多個的轉換器規則名稱;每個數據集合由一項或多項原始數據組成,每項原始數據包括數據項的名稱、單位、值等信息。
[0024]根據原始數據集合的轉換器規則名稱來查找這些規則是否存在,若存在則分別執行這些規則的數據轉換過程,這樣同一個數據集合可能執行多個規則的數據轉換,產生多個不同的數據集合;若不存在則不需要進行數據轉換。
[0025]原始數據的數據項名稱通過規則上的名稱轉換前正則表達式進行匹配,若匹配成功則繼續執行數據轉換流程,否則不需要進行數據轉換;
[0026]所述的名稱轉換是原始數據的數據項名稱通過規則上的替換名稱正則表達式,進行名稱替換。
[0027]原始數據的數據項單位通過規則上的單位轉換前正則表達式進行匹配,若匹配成功則繼續執行數據轉換流程,否則不需要進行數據轉換;
[0028]所述的單位轉換是原始數據的數據項單位通過規則上的替換單位正則表達式,進行單位替換。
[0029]所述的值轉換是原始數據的數據項值通過規則上的值轉換公式,進行轉換,可可以是:新值=1-原值,完成數據轉換的流程。
[0030]本發明的方法,以較少的成本投入來就收集各種云平臺數據,減少重復開發邏輯相同但數據項不同的成本投入,尤其是適用于對各種數據歸一整理,有效解決地域性文化差異導致數據展示不一樣的問題。本發明是一種軟件技術,只需要常規的服務器上安裝操作系統就能支持,區域一般的數據轉換器需要特定硬件支持;本發明是一種技術框架,適用于云平臺各種監控數據,區別于一般的存儲設備的監控數據轉換方法及轉換器;本發明除了可以由程序預定義的規則,還可以由運維人員自定義,具有高靈活性,區別于一般的數據轉換器;本發明利用正則表達式,可以滿足各種各樣的數據轉換,區別于一般的數據轉換器只能轉換特定領域的數據。
【附圖說明】
[0031 ]下面結合附圖對本發明進一步說明:
[0032]圖1為流程圖;
[0033]圖2為本發明的規則結構圖。
【具體實施方式】
[0034]本發明的實施方式有多種,這里以共有云平臺為例說明其中一種實現方法,如圖
1、2所示,具體實施過程如下:
[0035]1、加載數據轉換器規則;
[0036]/**
[0037]*加載數據轉換器規則.
[0038]>!<@param name數據轉換器配置文件名稱[0039 ]*@r e turn 無返回值
[0040]*/
[0041]public void load(String name){
[0042]Transfer.load(name);
[0043]}
[0044]2、收集監控原始數據集合;
[0045]/**
[0046]*收集監控原始數據集合.[0047 ]*@r e turn 無返回值
[0048]*/
[0049]public void colIect(){
[0050]ollector.colIect();
[0051]}
[0052]3、尋找原始數據集合對應的規則;
[0053]/**
[0054]*尋找原始數據集合對應的規則.
[0055]*@param st—個數據集合
[0056]^?return List〈TransferRule>規則列表
[0057]*/
[0058]public void find(DataSet st){
[0059]return Transfers.find(st.getNames());
[0060]}
[0061]4、名稱匹配;
[0062]/**
[0063]*名稱匹配是否成功.
[0064]>!<@param name數據項的名稱
[0065]^?return boo lean匹配結果的布爾類型