微服務調度監控平臺Smart Kettle之後端介紹

剛忙活完小盆友的事兒,換完尿不溼,喂完早飯,讀完繪本,再加上今天加班,正好有時間跟大傢伙嘮一下Smart Kettle的功能架構,詳細給大傢伙介紹一下本人自研的後端源碼結構(前端源碼結構後續文章會陸續介紹),以及功能介紹,針對每一塊核心代碼,能精準對應每塊的功能,從而也能協助大家很好的瞭解架構思想、編碼邏輯,能幫助大家很快用起來。麻煩我一個,省去大家苦,我不入地獄誰入地獄?

  PS:    Smart Kettle 調度監控平臺的後端開源地址:https://gitee.com/yaukie/x-smart-kettle-server.git

           Smart Kettle 調度監控平臺的前端開源地址: https://gitee.com/yaukie/x-smart-kettle-front.git

調度大屏

    調度大屏是整個調度監控平臺門面,同時,也是整個系統的入口,是對整個調度監控系統的總結、分析、展現,從宏觀層面分析參與整個調度系統的任務總量,任務類型、以及任務執行結果,便於協助開發或運維人員整體分析,既承擔了決策分析的任務,同時也擔負着系統運維監控的義務。

界面展示

    本系統大屏大致從四個大的角度,簡單羅列了一下任務調度的基礎運行情況,主要分爲:

        1、實例運行統計

            統計一段時間內,實例運行情況,這些實例包括作業實例、轉換實例,對系統內所有參與調度的實例,進行了統計,同時又對實例類型做了一個分類,實例中既有普通的任務,同時也有定時任務,針對兩類任務,分別做了統計,並用柱狀圖的形式展現出來。

    還可以選擇不同時間段,統計這段時間內任務的運行情況

        2、實例運行詳情

            實例詳情統計作業或轉換按照普通任務與定時任務分類,這裏沒有嚴格區分,因爲有些任務既可以是定時任務也可以是普通任務

            

        3、實例運行趨勢

        展示一下近期作業或轉換實例運行成功、失敗的情況,界面圖參考如下:

        可按照不同維度切換實例運行趨勢圖

        4、實例告警監控

        告警監控主要是考慮到某些作業或轉換在運行過程中,可能會出現因各種原因導致的異常,比如數據庫連不上,參數有問題、連接超時等問題,爲了能有效監控到每個步驟的執行情況,這裏引入了告警監控能力,能實時監控每個實例在執行過程中出現的問題或異常,並及時捕捉到,讓運維或實施及時干預

界面展示如下:

    

大屏展示告警最多的實例排名

界面展示更加詳細的實例告警

點擊異常記錄查看步驟詳情

任務調度

 

界面展示

        任務調度模塊毫無疑問,是整個調度平臺中,最核心的部分,是控制作業或轉換調度的核心部件。界面一覽如下:

作業調度查詢

轉換調度查詢

點擊本地運行按鈕,進入到如上圖的本地運行界面,有兩個選項,既可以本地立即執行,同時也可以選擇定時執行

        點擊本地執行,之後,界面提示執行成功,將任務提交到了線程池中,

回到作業調度的查詢界面,將會看到剛纔執行的任務

同樣,選擇轉換調度中的某一項之後,點擊本地運行,回到查詢界面,也能看到剛纔運行的轉換,能實時監控運行狀態。

        點擊查詢界面上的調度監控按鈕,界面將會進入到調度監控彈窗口,如上圖所示,展示的是該任務的調度圖,作業調度操作亦是如此

        點擊查詢界面上的刪除轉換或刪除作業,彈出刪除操作提醒,有三個按鈕置爲無效、本地刪除、關聯刪除,簡單說一下用途:

        (1)置爲無效:本地庫保留,但業務暫時不需要調度的作業或轉換

        (1)本地刪除:本地庫刪除,資源庫保留,業務暫時不需要的作業或轉換

        (1)關聯刪除:本地庫刪除、資源庫也刪除,業務也不再需要的作業或轉換

        作業調度支持參數配置,對某些特殊的作業,比如按照時間調度或數據抽取加工轉換的業務場景,時間可能是變化的,因此這裏給作業調度增加了參數自由配置的能力。

        在參數配置界面,可以增加任意參數,作爲後續作業執行的時候,調度執行的條件入口。

        注意:

            配置的參數如果要起作用,需要在spoon客戶端定義作業的時候,事先把參數入口預留出來,本系統暫時不支持web界面版的作業參數設置,目前只能先在spoon端配置好參數,在web端根據配置好的參數加工處理。

        在作業調度查詢界面上,點擊左上方的創建作業(按模板),界面將進入到創建作業頁面中,這裏已經預置好了6個常用模板,供讀者在使用的時候選擇。

(1)JAVASCRIPT模板:您可以按照模板的生成規則,編寫自定義腳本

(2)SHELL腳本模板:您可以按照模板的生成規則,編寫shell腳本,如果是linux平臺,則請編寫sh腳本,如果是windows請編寫bat腳本

(3)SQL腳本模板:您可以按照模板的生成規則,選擇合適的業務庫,編寫SQL腳本

(4)表對錶全量模板:您可以根據業務需求,選擇數據全量抽取

(5)表對錶增量模板:您可以根據業務需求,選擇數據增量抽取

(6)表對錶同步模板:你可以根據業務需求,選擇數據同步抽取

        選擇模板,點擊預覽按鈕之後,界面將會展示您鎖選中的模板預覽圖,可以直觀的看到當前模板的調度圖,然後根據您的業務場景,業務需求選擇合適的模板,維護信息之後,將會按照模板生成一個調度任務。

        帶參調度

            回到作業調度查詢首頁,點擊作業詳情,界面進入到作業詳情,在作業詳情界面,可以看到參數配置情況,如下圖所示:

需要注意的是,如果要使用傳遞參數調度任務,需要事先通過kettle spoon客戶端來設置自定義參數,目前平臺還不支持web端的參數定義,如下圖所示:

根據業務需求,需要什麼樣的參數,就設置什麼樣的參數,參數可以有多個,根據情況自行設置,設置方式請參考上圖,設置完成之後,保存即可,

這樣,在調度平臺就可以維護參數的名稱、參數默認值等相關信息,在進行調度的時候,就可以直接調度。

並且可以看到參數傳遞情況,實時監控執行過程。

定時調度

        定時調度主要用於解決業務場景中,企業內不同部門、不同系統之間、不用業務應用之間數據定時交換、抽取、加工,以及異構系統之間數據交換的能力,這類數據往往具有增量的特性,通過設定定時任務,在不同時間段內完成數據交換。

        本調度平臺爲解決業務場景中的數據交換問題,提供了爲企業內部定時調度的能力,這樣,企業就可以根據需要,自行設置定時調度,擺脫人工操作、手動調度的麻煩,並且在界面端操作更加簡潔、方便,完全可以代替kettle spoon端的定時調度。

        定時調度的方式也很簡單,讀者在執行調度的時候,選擇定時執行即可,如下圖所示:

        

如上圖所示,提供了簡潔易懂的定時調度維護界面,讀者可以根據需要維護定時的時間,爲避免影響業務,根據需要設置定時時間,

        上圖提供了豐富的定時調度配置窗口,方便了小白讀者不懂定時規則的麻煩,支持年、半年、季度、月、周、小時、分及秒的定時規則 

        定時任務配置好之後,點擊運行,界面將會進入到定時調度查詢列表,可以整體監控所有啓用定時任務的作業或轉換,並且在本界面上,你可以自由切換定時調度規則,可以隨時開啓,隨時關閉,時時刻刻監控該任務的執行情況,並且可以預測下一次執行時間。

資源庫管理

        資源庫通過樹狀結構展示了Kettle資源庫中作業、轉換的情況,即時查詢當前資源庫中的祖業任務、轉換任務,更加直觀化的展示每一節點的元數據信息,給運維或實施人員提供簡潔、優美、方便的界面環境。

        資源庫管理包括數據庫資源庫、文件庫資源庫兩種類型,不過在實際使用中,強烈建議使用數據庫資源庫作爲存儲介質。

        1)數據庫資源庫:

                本系統目前僅支持Mysql數據庫的資源庫,當然如果有其他存儲需要,也可以擴展,本身支持其他數據庫的擴展,比如gp庫,oracle庫等,不過,mysql數據庫作爲主流數據庫,已經足夠了。如下圖提供了資源庫的維護方式

        2)文件庫資源庫:

                本系統同樣也支持本地磁盤作爲資源庫,也即可以將作業或轉換直接存放在硬盤上,當做文件存儲,不過這樣做有很大的風險,尤其在真實業務場景中,有可能因爲硬盤或操作系統故障,導致數據丟失,並且用戶體驗也不太好,建議開發環境使用,生產環境使用數據庫作爲資源庫,如下圖,提供了文件庫的維護方式:

        3)創建資源庫

                在資源庫管理樹狀結構首頁,點擊根節點-資源庫結構樹,在右側明細中,右上角有個新增下級按鈕,點此按鈕,將會進入創建資源庫的管理界面

            如下圖是創建資源庫的新增界面,在此界面上,讀者可以自己創建自己的kettle資源庫,比如可以維護一下資源庫類型,選擇創建的是數據庫資源庫還是文件庫資源庫,如下圖是數據庫資源庫選項,需要維護一下資源庫名稱、資源庫用戶名(默認admin),資源庫登錄密碼(默認admin)以及所連接的數據庫相關信息,這裏不再贅述,所有飄紅的內容都需要填寫。

            資源庫類型,選擇文件庫之後,管理界面如下圖所示,需要在此界面上維護一下資源庫名稱、基礎路徑(文件夾位置,絕對路徑)、以及資源庫有效性(默認是有效,目前用不到,可以忽略)

 

告警監控

        監控查看

            告警監控展示所有的調度任務,每個調度環節、調度過程出現異常的記錄,詳細記錄了每個調度任務執行過程的執行情況,爲運維或實施人員提供了更加直觀的報錯預警,進而可以有針對性的手動處理出錯任務,做到了精準、快速、保證了業務正常運行。

            如下圖是告警監控的查詢列表

            點擊異常記錄之後,可以及時查看當前任務調度的異常記錄,準確定位到出錯的位置,爲運維和實施人員提供了出錯依據。

批量處理

     讀者可以根據需要清理告警日誌,在告警監控查詢列表中,勾選需要刪除的監控日誌,點擊清理日誌,將會彈出確認刪除對話框,需要注意的是,如果確認清理,那麼日誌將會從磁盤以及數據庫中徹底刪除,因此此操作需要謹慎,否則數據永遠從地球上消失了!

日誌管理

            日誌管理是爲業務任務人員提供的用於歷史記錄查詢、業務數據場景異常分析而開發的管理功能,讀者可以根據任務調度名稱、任務調度時間下載一段時間內的作業或轉換執行日誌,日誌默認是存放在硬盤上,如果硬盤上沒有,將會從數據庫下載。

日誌下載

批量刪除

            讀者可以根據需要清理日誌,在日誌查詢列表中,勾選需要刪除的日誌,點擊清理日誌,將會彈出確認刪除對話框,需要注意的是,如果確認清理,那麼日誌將會從磁盤以及數據庫中徹底刪除,因此此操作需要謹慎,否則數據永遠從地球上消失了!

寫在最後

  我一直有個想法,這個想法激發於5年前的一個交換平臺的項目,這個項目一直用kettle做爲數據的抽取、加工、調度工具,並且是Spoon客戶端版本的,使用起來體驗非常糟糕,耗內存、卡死機家常便飯, 甚至於會影響其他的正常業務,並且沒法做到跨平臺移植,數據安全性極低,更不用考慮大數據量的調度,於是乎.....

  Smart Kettle 是本人疫情期間創作的基於Kettle9.2.0.0-179版本的微服務架構體系的開源數據抽取調度監控平臺,作者本人除了要加班加點完成每天的工作以外、還要在家帶娃,並且還是兩個!(꒦_꒦) (꒦_꒦) !此情此景,映入腦海,然後纔是抽時間,擠時間搞創作!

曾經也想過放棄,感覺費勁把火的搞這玩意,到底有啥意義呢?既沒有錢,也沒有title,還死費勁,一個人既充當架構師、又充當產品、還充當開發人員、更充當測試、運維、實施的角色,你說累不累?

我是咋堅持下來的呢?

1348年,歐洲黑死病瘟疫,疫情期間 一名叫喬萬尼·薄伽丘的年輕人編寫的《十日談》問世

1592年,倫敦爆發大瘟疫,疫情期間 一名叫莎士比亞的寒門子弟編寫的 《維納斯與阿多尼斯》《魯克麗絲受辱記》 問世

1665年,倫敦爆發鼠疫,疫情期間 一名叫牛頓的23歲小青年確立了力學三定律,發現萬有引力,創立了光色散原理

1830年,俄羅斯爆發霍亂,疫情期間 一名叫普希金的完成了4部戲劇、33首詩歌、6部中篇小說、若干短篇小說

丘吉爾說“不要浪費一場危機”,於是,

2020年,全球爆發新冠疫情,疫情期間 一名叫yuenbin的年輕人,自研了Smart Kettle 調度監控平臺。。。。

 我就是這麼堅持下來的,前輩們的鼓勵,加上自己的勤學苦練,終於今年年初發布了第一個版本,也希望各位讀者能多多關注,相信能與大家一起打造出一個精品!

捐贈

            創作不容易,編碼很費時,感謝各位~~

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章