简介: 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作业日常监控与运维实践相关推荐

  1. 《监控运维实践:原则与策略》读书笔记

    原文地址:https://www.lujun9972.win/blog/2022/03/17/<监控运维实践:原则与策略>读书笔记/index.html 目录 书本信息 监控实施的原则 反 ...

  2. MySQL数据库性能优化及自动化运维实践教程!DBA日常工作

    MySQL数据库性能优化及自动化运维实践教程!本文作者将站在更加全面的角度分享他在这一年多 DBA 工作中的经验,希望可以给大家带来启发和帮助. DBA 的日常工作 我觉得 DBA 真的很忙,我们来看 ...

  3. Greenplum 实时数据仓库实践(9)——Greenplum监控与运维

    目录 9.1 权限与角色管理 9.1.1 Greenplum中的角色与权限 9.1.2 管理角色及其成员 9.1.3 管理对象权限 9.1.4 口令加密 9.2 数据导入导出 9.2.1 file协议 ...

  4. DBA很忙—MySQL的性能优化及自动化运维实践

    作者:王辰 来自:高效运维(ID:greatops) DBA的日常工作 首先,我们来看看DBA的具体工作,我觉得 DBA 真的很忙:备份和恢复.监控状态.集群搭建与扩容.数据迁移和高可用,这是我们 D ...

  5. 云原生2.0时代,华为云DevOps立体运维实践

    摘要:随着云原生2.0时代的来临,越来越多的企业及个人选择使用云原生技术来构建业务,云原生技术给业务构建.交付带了便利的同时,对运维也提出了更高的要求. 2020年12月,中国DevOps社区峰会在北 ...

  6. 阿里智能运维实践|阿里巴巴DevOps实践指南

    编者按:本文源自阿里云云效团队出品的<阿里巴巴DevOps实践指南>前往:https://developer.aliyun.com/topic/devops,下载完整版电子书,了解阿里十年 ...

  7. 有赞数据库自动化运维实践之路

    「运维内推」有赞诚聘:应用运维工程师.系统运维工程师.运维开发工程师.DBA.请关注文末链接 一.前言 有赞作为"新零售"的软件服务供应商,随着业务的不断发展,从第一批几十家商户到 ...

  8. MySQL的性能优化及自动化运维实践与Mysql高并发优化

    首先,我们来看看DBA的具体工作,我觉得 DBA 真的很忙:备份和恢复.监控状态.集群搭建与扩容.数据迁移和高可用,这是我们 DBA 的功能. 了解这些功能以后要对体系结构有更加深入的了解,你不知道怎 ...

  9. 容器 PaaS 新技术架构下的运维实践

    2018年11月16-17日,运维&容器技术盛会 CNUTCon 全球运维技术大会在上海·光大会展中心成功举办.时速云联合创始人兼 CTO 王磊受邀参加此次大会,并发表主题演讲. 王磊此次演讲 ...

最新文章

  1. Unity 3D 一个简单的角色控制脚本
  2. 2017年天津市大学生数学竞赛试题 (理工类)
  3. jQuery操作DOM元素案例
  4. SpringBoot------集成PageHelper分页功能
  5. Django开发利器——django-debug-toolbar
  6. 百度亮相NeurIPS 首届Expo:向世界科普了中国自动机器学习框架
  7. wordpress提高访问速度
  8. Emacs 安装配置使用教程
  9. Word2007设置标题序号与标题文字之间自动空一个字距
  10. 河北工程大学计算机科学与技术分数线,2019年河北工程大学优势专业排名及分数线...
  11. c++ 求int数组的长度
  12. python中idx+=1_在Python中为apos;循环访问索引 Dovov编程网
  13. 大数据平台测试目标与测试指标
  14. C语言杨辉三角和“日本某地谋杀案”习题讲解
  15. 《Groovy官方教程》Grape依赖管理器
  16. 卸载计算机程序有几种方法,电脑上如何卸载软件 卸载软件的三个办法
  17. 关于Android 开发常用软件的快捷键总结
  18. c语言adc0809小数点,ADC0809做AD转换的C程序
  19. 诺顿 NIS2012杀毒软件 CPU、内存、磁盘IO占用情况测评
  20. NOIP2013落谷P1311选择客栈题解

热门文章

  1. 消消乐实现下坠_JavaScript有多强大,实现消消乐小游戏
  2. 安装应用需要打开未知来源权限_打开安卓这个开关 不让流氓软件肆意妄为
  3. idea集成python_IDEA集成Python插件,SDK配置
  4. 单分支 两路分支和多分支的if结构_JavaScript学习笔记(二)-- 分支结构
  5. python 局域网主机扫描_python扫描局域网主机名
  6. linux 禁用smb服务,Samba 4.11 发布,更好的可扩展性与默认禁用SMB1
  7. 宝塔linux忘记密码,宝塔忘记登录入口了怎么解决 宝塔面板密码忘记了怎么办
  8. 基于java二手书论文_java毕业设计_springboot框架的二手书交易管理与实现
  9. 排序算法 --- 快速排序
  10. 计算机管理中看不到本地用户,win7系统计算机管理中没有本地用户和组的解决方法...