中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用DevOps流水線進行撥測

發布時間:2022-01-05 17:36:43 來源:億速云 閱讀:163 作者:柒染 欄目:云計算

這期內容當中小編將會給大家帶來有關如何使用DevOps流水線進行撥測,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

1. 為什么要撥測

對于系統中的一些關鍵服務,我們通常會配置監控服務。當故障發生時,能夠盡快被檢測到,發送通知給關注人。當故障發生后,能夠有效地追溯故障過程。
撥測是監控系統中的一個重要環節,能夠檢測服務的網絡質量,并提供實時告警。  
在公有云上,云廠商通過廣泛分布的撥測節點,提供撥測服務。KubeSphere 是一個以應用為中心的開源容器平臺,那么在 KubeSphere 上如何實現撥測功能呢?
這里主要使用 KubeSphere 中的 DevOps 流水線實現撥測功能。
 

2. 使用 DevOps 進行撥測

主要使用的流水線功能包括:
  • 郵件通知
  • 新建流水線
  • 定時構建
 

2.1 開啟郵件通知

KubeSphere 中 DevOps 的郵件通知不同于通知模塊,需要單獨配置。可以參考文檔,Jenkins 系統設置。
這里,我使用的是 Poste 搭建的獨立域名郵件服務。下圖是配置頁面,   EMAIL_ 開頭的變量即郵件相關配置。
如何使用DevOps流水線進行撥測  
如果無法確認相關參數,可以先到 Jenkins 系統配置頁面對參數進行調試。
 

2.2 新建一個流水線

這里的撥測,主要分為服務狀態碼和響應時間兩部分,分別由兩個并行的 Stage 構成。
測試的原理是,通過     curl 命令獲取服務鏈接的狀態碼和響應時間,然后與預期值比較。如果滿足觸發條件,則發送異常通知郵件。
下面是 Jenkinsfile 文件內容:

    
pipeline {                      
 agent any                      
 parameters {                      
   string(name:                       'LINK', defaultValue:                       'https://kubesphere.io/', description:                       '待撥測鏈接')                      
   string(name:                       'HTTP_CODE', defaultValue:                       '200', description:                       '預期狀態碼')                      
   string(name:                       'TIME_TOTAL', defaultValue:                       '1', description:                       '超時時間,單位:秒')                      
   string(name:                       'EMAIL', defaultValue:                       'kubesphere@mail.xxxx.com', description:                       '異常時,郵件通知人')                      
 }                      
 stages {                      
   stage(                       'default') {                      
       parallel {                      
           stage(                       '狀態測試') {                      
               steps {                      
                   script {                      
                       try{                      
                           sh                       ''                   '
                           export _HTTP_CODE=$(curl --connect-timeout 120 -s -o /dev/null -w \'%{http_code}\                       ' $LINK)
                           if [ "$_HTTP_CODE">                            then
                               exit -1
                           fi
                           '                   ''                  
                       }catch(err){                      
                           currentBuild.result =                       'FAILURE'                  
                           mail(subject:                       "$LINK 訪問狀態碼錯誤", body:                       "消息來自 DevOps 流水線,請檢查相關服務是否異常。", to:                       "$EMAIL")                      
                       }                      
                   }                      
               }                      
           }                      
           stage(                       '超時測試') {                      
               steps {                      
                   script {                      
                       try{                      
                           sh                       ''                   '
                           _TIME_TOTAL=$(curl --connect-timeout 120 -s -o /dev/null -w \'%{time_total}\                       ' $LINK)
                           TIME_TOTAL=`echo $TIME_TOTAL| awk '{                       print int(                       $0)}                       '`
                           _TIME_TOTAL=`echo $_TIME_TOTAL| awk '{                       print int(                       $0)}                       '`
                           if [ $_TIME_TOTAL -ge  $TIME_TOTAL ]
                           then
                               exit -1
                           fi
                           '         ''    
                       }catch(err){    
                           currentBuild.result =           'FAILURE'
                           mail(subject:         "$LINK 訪問超時", body:         "消息來自 DevOps 流水線,請檢查相關服務是否異常。", to:         "$EMAIL")        
                       }    
                   }    
               }    
           }        
       }              
   }              
 }              
}                  
   

2.3 定時構建

成功創建撥測流水線之后,只能人工觸發。撥測需要的是, 24 小時無間斷地監控。
這時,就需要使用到 DevOps 的定時構建功能。
在流水線頁面,依次選擇【更多操作】-> 【編輯配置】->滾動頁面->【構建觸發器】。勾選定時構建,設置每 5 分鐘觸發一次流水線,填入參數:

*/5 * * * *        
 
如何使用DevOps流水線進行撥測  
最后,點擊【確認】,保存即可。
 

3. 開始撥測你的服務吧

 

3.1 SUCCESS

在流水線,直接使用預期的參數,進行測試。
 
執行完畢之后,在【活動】-> 【狀態運行】中可以看到執行狀態:
如何使用DevOps流水線進行撥測  
 

3.2 FAILURE

這里我們,有意地將狀態碼設置為 201,超時時間設置為 0 秒,以觸發通知邏輯。
 
查看執行狀態:
如何使用DevOps流水線進行撥測    

上述就是小編為大家分享的如何使用DevOps流水線進行撥測了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

青州市| 黑龙江省| 浏阳市| 灵宝市| 宝鸡市| 库尔勒市| 连南| 永平县| 赣州市| 盘锦市| 康乐县| 青浦区| 定结县| 淮安市| 黔西县| 泽普县| 呼伦贝尔市| 老河口市| 昌都县| 淮安市| 瑞金市| 惠州市| 个旧市| 西乡县| 左云县| 邯郸市| 鹤壁市| 甘孜县| 阳江市| 日照市| 衡阳县| 莱西市| 方正县| 积石山| 宜都市| 巧家县| 庆云县| 库车县| 洛阳市| 出国| 张家界市|