MaxCompute作业日常监控与运维实践
簡介: MaxCompute作業日常監控與運維實踐
監控項目作業超時運行
案例一
專用于業務團隊取數的project_A ,基本都是手動跑SQL查詢,每個作業執行基本不會很長時間,由于目前使用的是包年包月計算資源,為了防止單個作業長期占用資源,需要對作業進行超時監控。假設對于project_A的SQL作業,只要某個作業運行時長(等待時間+真正運行時間)超過15分鐘,則視為異常用時作業,需介入檢查。
?
- 監控配置
1. 登錄[云監控控制臺](https://cloudmonitor.console.aliyun.com/)。
2. 在左側導航欄,單擊報警服務 > 報警規則。
3. 在報警規則頁面的閾值報警頁簽,單擊創建報警規則。
4. 單擊創建報警規則。
5. 在創建報警規則頁面,基于場景配置報警規則相關信息,詳細參數配置請參見[創建閾值報警規則](https://help.aliyun.com/document_detail/103072.html)。配置報警聯系人詳情請參見[創建報警聯系人或報警聯系組](https://help.aliyun.com/document_detail/104004.html)。
?
- 資源范圍:選擇項目名稱,并在下方"項目名稱"中指定需要監控的項目project_A 。
- 規則描述:即選擇監控指標,如此案例我們針對項目下所有作業 監控,則選擇作業運行時長類型。最大值大于等于15*60=900秒,即配置作業運行時長超過15分鐘則觸發告警,注意單位為'秒'。
- 通知方式:可以選擇短信+郵件+釘釘機器人 (Warning),以便快速從各個通道獲取告警,另外告警接收人要注意一定要配置好具體人員,避免接收的人員不是負責此業務的人員。
?
- 告警處理
-
- 收到單個job的超時告警,考慮是否單個作業本身問題,可以通過[MaxCompute管家的作業運維管理](https://help.aliyun.com/document_detail/198711.html?spm=a2c4g.11186623.6.1026.25656a2coeGp9Z)-高級查詢單獨搜索這個instance id:
? ? ?
在結果列表里,可以看到作業的基本信息,可以點擊'Logview'查看詳情,如是否是長尾、是否是作業查詢量本身就非常大等,經過判斷后,可以考慮是否讓job繼續運行,若不能繼續運行則kill掉。若一直是等待資源狀態,那么可以到“作業快照”中查看當前時刻,對應資源組的作業負載情況,是否是有其他項目作業占滿長期占滿資源等。
?
-
- 收到多個job超時告警,或者持續單個不同的job超時告警,可以考慮是否是資源不足,大量作業在等待資源,可以在MaxCompute管家作業快照里查看對應資源組此刻正在運行作業負載情況,人工介入,該kill作業的kull作業,該擴容的擴容等。
案例二
生產項目project_B ,有跑MaxCompute的SQL、spark等類型任務,所有生產任務都比較重要,正常情況下再大的任務執行時間(等待時間+真正運行時間)不會超過1個小時,考慮到spark有流式作業存在,一個job拉起會很長時間也是正常現象,因此對于本生產項目,可以對SQL類型作業進行監控超時情況,以便盡快介入檢查。
- 監控配置
1. 登錄[云監控控制臺](https://cloudmonitor.console.aliyun.com/)。
2. 在左側導航欄,單擊報警服務 > 報警規則。
3. 在報警規則頁面的閾值報警頁簽,單擊創建報警規則。
4. 單擊創建報警規則。
5. 在創建報警規則頁面,基于場景配置報警規則相關信息,詳細參數配置請參見[創建閾值報警規則](https://help.aliyun.com/document_detail/103072.html)。配置報警聯系人詳情請參見[創建報警聯系人或報警聯系組](https://help.aliyun.com/document_detail/104004.html)。
- 資源范圍:選擇項目名稱,并在下方"項目名稱"中指定需要監控的項目project_B 。
- 規則描述:即選擇監控指標,如此案例我們針對項目下所有作業 監控,則選擇作業運行時長類型。最大值大于等于60*60=3600秒,即配置作業運行時長超過1個小時則觸發告警,注意單位為'秒'。
- 通知方式:可以選擇短信+郵件+釘釘機器人 (Warning),以便快速從各個通道獲取告警,另外告警接收人要注意一定要配置好具體人員,避免接收的人員不是負責此業務的人員。
?
- 告警處理
- 收到告警后,您可以通過[MaxCompute管家的作業運維管理](https://help.aliyun.com/document_detail/198711.html?spm=a2c4g.11186623.6.1026.25656a2coeGp9Z)-高級查詢單獨搜索對應的job,在結果列表中可先判斷是否還是等待資源狀態,若是,則可以通過作業快照查看此刻對應資源組作業運行情況是否資源緊張;若不是,可以點擊Logview查看詳細信息,是否長尾等。判斷作業的合理性,決定是否繼續運行或者kill掉。
?
若您是通過DataWorks使用MaxCompute,也可以通過DataWorks的[智能監控](https://help.aliyun.com/document_detail/138162.html?spm=a2c4g.11186623.6.1074.f4352d21zjMF73)配置自定義監控規則進行作業超時監控。DataWorks上還可以針對具體調度節點進行監控,監控的指標也更加豐富。
?
需要注意的是,如果作業一直為運行狀態,觸發告警的job如果一直處在running狀態,那么只要滿足告警周期規則,會持續發出告警,直到job運行完成(成功或失敗)。如果遇到需要放行繼續運行的job,告警周期又短,可能會頻繁收到告警,因此在配置規則時告警周期需要合理配置。
?
查看某時段發起的作業執行情況
日常數據開發過程中,需要對自己負責的作業進行運維管理,如查看當天發起的作業執行情況,有哪些作業失敗要查看失敗原因等。
通過[MaxCompute管家的作業運維管理](https://help.aliyun.com/document_detail/198711.html?spm=a2c4g.11186623.6.1026.25656a2coeGp9Z),可以查看,如下圖:
選擇需要查看具體發起作業的時間段,選擇狀態,cancelled即為失敗狀態,點開高級查詢,輸入提交人(目前只支持精準匹配,需要帶上`ALIYUN$`或`RAM$`前綴),進行搜索。在結果列表里可以快速獲取一些基礎信息,但是要查看具體失敗原因,還需要點擊Logview,通過Logview日志查看詳情,包括查看對應跑的什么腳本、返回的失敗信息等。
?
需要注意的是,如果是通過DataWorks發起的作業,且項目的“MaxCompute訪問者身份”選擇的是阿里云主賬號的話,那么項目的所有提交人都會是主賬號,因此就不適合通過“提交人”進行過濾,只能按其他粒度進行過濾。
?
查看某時刻包年包月資源組作業負載
作業資源運維人員,管理計算資源的分配,如收到開發人員反饋當前大量作業等待資源,通過MaxCompute管家概覽頁的“CU資源使用趨勢”查看對應資源組的負載線圖,點擊具體時間點查看對應時刻作業快照:
- 如果對應資源組是完全獨享型(所有自定義配額組預留CU都是最大值=最小值),選擇具體的資源組進行查看,這樣更有針對性。點擊曲線圖上對應時刻,進入此刻的作業快照列表,查看當前運行的作業資源占用情況。在結果列表中,再對CUP使用占比進行從高到低排序,看是否是某個或某幾個作業長時間占用大量資源,針對性對這些作業進行處理。
- 如果資源組是共享型(自定義配額組預留CU最大值>最小值),那么可以直接默認查看所有資源組的CU資源使用趨勢,這樣進入快照列表中看所有資源的作業列表,對CUP使用占比進行從高到低排序,可以看到具體哪些作業在哪個資源組搶占了大量資源,進而針對性的處理作業,或者調整資源組,比如業務優先級低的項目所在資源組最大值可以分配小一些,以免搶占高優先級項目所屬資源組的資源。
?
針對資源組的分配,可以參考[包年包月資源隔離](https://help.aliyun.com/document_detail/197810.html?spm=a2c4g.11186623.6.1153.11fe32c0myBda4)、[包年包月資源分時配額](https://help.aliyun.com/document_detail/194065.html?spm=a2c4g.11186623.6.1152.542b274biJDwSm)。
?
查看某作業執行相關信息
在做費用審計、資源審計等,獲取到了某個job的instance id,需要找到提交人或者查看具體是執行了什么腳本等。
?
案例:如使用按量計費資源,對SQL進行費用審計,發現有某個或某幾個作業費用異常,需要知道是誰執行的,執行的sql是什么。
1. 通過[MaxCompute管家的作業運維管理](https://help.aliyun.com/document_detail/198711.html?spm=a2c4g.11186623.6.1026.25656a2coeGp9Z)-高級查詢單獨搜索對應的job,因為是SQL消費審計,作業一定是成功狀態,所以選擇terminated狀態。
2. 在結果列表中,查看信息:
- ?若提交人為子賬號,則可直接找對應子賬號負責人進行自檢。
- 若提交人為主賬號且有DataWorks節點ID非空,則大概可以判斷是通過DataWorks調度發起的生產節點,可以到DataWorks 運維中心[查看周期任務](https://help.aliyun.com/document_detail/137787.html?spm=a2c4g.11174283.6.1064.1be52b65CcPWWn)搜索節點,找到對應“責任人”,讓責任人自檢。
- 若提交人為主賬號,且DataWorks節點ID為空,此類比較難以判斷責任人,可以通過點擊查看Logview,獲取具體的query,線下尋找跑過此query的提交人。需要注意的是,Logview一般保留時長為7天,超過7天,可以嘗試通過[information schema->TASKS_HISTORY](https://help.aliyun.com/document_detail/135433.html?spm=a2c4g.11186623.6.1032.7ea65856ZU3E4x#title-r2c-tak-zfi)獲取作業信息。
- 若作業是最近7天運行的,作業責任人自檢時,也可以直接在結果列表里訪問Logview進行查看。
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。
總結
以上是生活随笔為你收集整理的MaxCompute作业日常监控与运维实践的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一种通用整形数组压缩方法
- 下一篇: 使用管控策略,设定多账号组织全局访问边界