智能基線
智能基線能夠及時捕捉導致基線上的任務無法按時完成的異常情況并提前預警,保障復雜依賴場景下重要數據能在預期時間內順利產出,幫助您降低配置成本、避免無效報警、自動監控所有重要任務。
應用場景
管理任務優先級
在任務數量越來越多,而資源有限的情況下,當發生資源搶占時,您可以將重要任務添加至基線上,并為基線設置較高的優先級,以保證重要的任務可以優先分配到資源。
計算任務預計完成時間
任務的運行受到資源和上游任務運行情況的影響,您可以將任務添加至基線上,DataWorks將計算出該任務每天或每小時的預計完成時間,便于您查看任務的預計完成時間。
保障任務在承諾時間前運行完成
您可以將任務添加至基線上,并設置基線承諾時間,當系統預測到基線上任務無法在承諾時間前完成,或上游任務出現錯誤或變慢的情況,將發送報警信息,您可以根據報警信息及時處理問題,保障任務在承諾時間前運行完成。
相關概念
基線:用戶將重要任務加到基線上并設置承諾時間后,系統將根據任務運行情況計算基線任務的預計完成時間。當系統判斷基線任務可能無法在承諾時間前完成,系統將發出告警。
承諾時間:任務運行成功的最晚時間點。即面向數據應用,任務承諾在該時間點前完成。如果希望為運維人員預留一定的時間處理異常,您可以為基線設置預警余量,則系統會將
承諾時間-預警余量
作為觸發報警的預警時間,判斷任務能否在預警時間前運行成功。預警時間:即
承諾時間-預警余量
。基線任務:被添加到基線上的任務。
基線實例:系統使用基線實例計算任務每次運行的預計完成時間。基線實例的狀態包括:安全、預警、破線。
安全:
預計完成時間<預警時間
。預警:
預警時間<預計完成時間<承諾時間
。破線:
預計完成時間>承諾時間
。
關鍵路徑:影響基線任務的多條路徑中,運行耗時最長的路徑。
事件:基線任務及其上游任務出錯,或關鍵路徑上的任務變慢時,會產生事件。事件會影響基線任務的按時完成。
功能介紹
將重要任務添加到基線上后,DataWorks將根據基線的優先級保障基線任務的資源,并根據基線任務的上下游依賴關系確定監控范圍,根據該監控范圍內任務的運行情況觸發基線報警或事件報警。
根據基線任務K確定監控范圍。
基線任務的上游節點:影響任務K產出的節點均被納入監控范圍:
基線任務的下游節點:不在監控范圍:
關鍵路徑:影響任務K的所有路徑中耗時最長的路徑:
新建一條基線:
指定添加到基線的任務K。
設置基線優先級及告警策略參數。
根據監控范圍內任務的實際運行情況觸發基線報警或事件報警。
如上圖所示,智能基線的主要功能如下。
新建并管理基線
您可以在基線管理頁面新建和管理基線:
將需要重保的任務移動至基線,設置基線承諾時間等基本信息,并設置基線的報警策略(報警發送的方式、接收人等),后續會依據基線的設置對需要監控的任務進行監控預警。
您也可以指定基線的優先級,基線優先級可以決定任務運行的優先程度,基線優先級越高,基線上任務的優先級也會越高。優先級高的任務,在調度資源緊張的情況下,將優先獲得調度資源。
說明該優先級在滿足以下兩個條件的情況下將映射為MaxCompute計算任務的優先級。
MaxCompute Project開啟優先級功能。
MaxCompute Project使用包年包月計算資源。
MaxCompute作業優先級=9-DataWorks基線優先級。
基線新建及管理的操作詳情請參見基線管理。
確定監控范圍
DataWorks會結合基線上任務的依賴關系確定需要監控的范圍,將可能影響基線數據產出的所有任務都進行監控。詳情請參見下文的核心邏輯介紹:監控范圍。
觸發報警并發送報警信息
基線報警
DataWorks會根據基線配置的報警策略,結合實際監控范圍內任務的運行情況,自動觸發報警并發送給報警接收人。當預測到基線上任務無法在承諾時間內完成時,系統將會根據定義的報警方式發送基線報警信息,詳情請參見核心邏輯介紹:基線報警。
事件報警
監控范圍確定后,當基線任務及其上游任務出錯,或關鍵路徑上的任務變慢時,將會產生相應的事件,并發送事件報警信息,您可以在DataWorks的事件管理頁面查看當前已存在的事件列表,詳情請參見事件管理。
費用說明
基線實例個數:所有開啟狀態的基線都會產生基線實例,DataWorks根據當天23:59產生的基線實例數量收取費用。詳情請參見:基線實例計費說明。
報警短信和報警電話個數:基線報警將產生短信和電話費用,詳情請參見:報警短信與報警電話計費。
使用限制
僅DataWorks標準版及以上版本支持使用智能基線功能。低版本用戶請先升級再使用該功能,詳情請參見:DataWorks各版本詳解。
核心邏輯介紹:監控范圍
基線創建完成后,某個任務被移動至基線后,智能基線不會監控基線上任務的所有上下游任務,對該任務相關的上下游監控范圍如下:
上游任務:影響基線上任務數據產出的上游任務會被納入基線監控范圍。
下游任務:下游任務不會被納入基線監控范圍,即基線任務的下游任務及上游任務的其他分支下游任務運行出錯時不會觸發報警。
如上圖所示,假設整個DataWorks有6個任務節點,任務D和任務E是基線上的任務,則影響任務D和任務E數據產出的上游任務,即上圖中的任務A、任務B、任務D和任務E,均會被納入監控范圍,監控范圍內的任務出現異常(出錯或變慢),均會被智能基線察覺,而任務C和任務F不受智能基線所監控。
核心邏輯介紹:基線報警
您可以將重要任務添加到基線上,設置基線承諾時間和預警余量后:
DataWorks會將
承諾時間-預警余量
作為預警時間,結合監控范圍內任務的歷史平均運行時長,基線實例依次推算得出監控范圍內各任務的最晚完成時間和最晚開始運行時間。任務實際運行時,當監控范圍內的任務的運行狀態可能會導致基線任務無法在預警時間前完成時,DataWorks會觸發基線報警。
核心邏輯介紹:事件報警
監控范圍確定后,當監控范圍內的任務出現異常時,智能監控會生成事件,并基于對該事件的分析觸發報警。任務的異常包括:
出錯:任務運行失敗。
變慢:任務本次運行時間相比過去一段時間內的平均運行時間明顯變長。
如果一個任務先變慢、再出錯,會生成兩個事件。
您可以進入事件管理頁面查看產生的事件詳情。
核心邏輯介紹:關鍵路徑與關鍵實例
基線上需要保障的任務,其依賴關系可能錯綜復雜,DataWorks提供甘特圖功能幫助您快速定位阻塞基線上數據產出的關鍵路徑與關鍵實例,其中影響基線任務產出的多條路徑中,耗時最長的路徑為基線關鍵路徑。
范例
場景:當前事件為6:40,任務F仍在運行。
基線預警:
XX年XX月XX日 XX:XX:XX
基線XX預警,業務時間XX,余量:-10min ……
事件報警:
XX年XX月XX日 XX:XX:XX
事件體型,業務時間XX,任務XX,狀態:延遲……
甘特圖用于反映目標任務的關鍵執行路徑。以上述案例為例,關鍵路徑展示及異常捕獲時間如下所示: