请描述在 Azkaban 中利用 SLA 功能来监控工作流任务执行时长的具体方法,包括配置步骤、触发机制和告警通知方式。
考察说明
考查候选人对 Azkaban 调度系统中 SLA 监控功能的掌握,包括配置、执行期检查与告警机制。
回答思路
- 【回答框架 1】Azkaban 的 SLA 功能用于监控工作流或单个 job 的执行时长与完成状态。核心组件包括 SLA 规则、SLA checker 和告警动作。SLA 规则在项目 zip 包的 .sla 文件中定义,或在 Web UI 的 Schedule 界面设置。
- 【回答框架 2】配置 SLA 时,需要指定监控对象(flow 或 job)、触发条件(如执行时长超过阈值、完成时间晚于设定时间)以及动作(如发送邮件、触发 kill 命令)。例如,可以设定某个 job 在 30 分钟内未完成则发送告警邮件并终止流程。
- 【回答框架 3】执行期间,Azkaban 的 scheduler 定期运行 SLA checker,扫描正在运行或已完成的执行实例,比对 SLA 规则。若触发条件满足,则执行配置的动作,如发送邮件给指定收件人,或强制 kill 该 job,从而保证任务在预期时间内完成。
- 【回答框架 4】注意:SLA 的动作和邮件通知需要提前配置好告警邮箱,且 SLA 检查频率由调度器设置决定,存在一定的检查延迟。
- 【关键点 1】SLA 配置发生在项目 zip 的 .sla 文件或 Web UI 的 Schedule 设置中。
- 【关键点 2】SLA 可针对 flow 或 job 设置执行时长阈值和完成时间点。
- 【关键点 3】SLA 动作包括发送告警邮件、失败时 kill 任务等。
- 【关键点 4】SLA 检查由调度器定期执行,存在检查间隔延迟。
- 【易错点 1】SLA 监控是执行期保障,不能保证任务一定在时间内完成,只能事后告警或干预。
- 【易错点 2】SLA 邮件依赖正确配置收件人,否则告警可能丢失。
- 【易错点 3】SLA 检查的延迟可能影响告警时效性。