别再让慢查询偷偷吃掉你的时间!用DolphinScheduler轻松搞定超时告警

是不是经常遇到这种情况?一个数据库备份或者查询任务,跑起来没完没了,等你发现时,业务已经受到影响了。


点亮⭐️  

https://github.com/apache/DolphinScheduler



点击蓝字 关注我们



转载自 | 数仓生态圈


你是不是经常遇到这种情况?一个数据库备份或者查询任务,跑起来没完没了,等你发现时,业务已经受到影响了。别担心,今天我就分享一个我亲自验证过的高效方法:用 Apache DolphinScheduler 设置执行超时告警,时间一到,信息立刻推送到你的飞书(或钉钉/企业微信),让你时刻掌握任务动态!

核心思路很简单:让调度器替你“盯梢”,一旦任务超过预设时间,马上通知你。这就像给你的后台任务装了一个智能闹钟。

你需要准备的环境


为了复现我的操作,你需要备齐以下几点:

  • Apache DolphinScheduler 3.4.1(这是我使用的版本)

  • MySQL 5.7(作为演示的数据源)

  • 确保 DolphinScheduler 已安装必要的插件(下面会列出)


DolphinScheduler关键配置


想让告警生效,你得先确认插件都装对了。以下是必须启用的插件清单:

--alert-plugins--dolphinscheduler-alert-feishu--end----task-plugins--dolphinscheduler-task-sql--end----datasource-plugins--dolphinscheduler-datasource-mysql--end--

另外,别忘了准备好 MySQL 的 JDBC 驱动 jar 包。

模拟一个“慢查询”场景


为了演示超时告警,我们需要在数据库里创造一个会“卡住”的任务。这里我创建一个简单的表,然后给它加锁。

第一步,建表(任何表都可以):

CREATE TABLE `actor` ( `id` bigint(20NOT NULL AUTO_INCREMENT, `name` varchar(50CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, PRIMARY KEY (`id`USING BTREEENGINE = InnoDB CHARACTER SET = utf8mb4;

第二步,锁表(让查询超时):

LOCK TABLES actor WRITE;

执行这条命令后,任何尝试写入或读取actor表的请求都会被阻塞住,正好用来测试我们的超时告警。

实操:开启你的“智能盯梢”


1. 配置数据源


登录 DolphinScheduler 控制台,先在数据源中心创建一个 MySQL 数据源,连接到我们刚刚建表的数据库。

2. 设置飞书告警通道


  • 创建告警实例:在“告警实例管理”中,插件选择 Feishu,填入你的飞书机器人Webhook地址。

  • 创建告警组:在“告警组管理”中,新建一个组,并把上一步创建的飞书告警实例加进来。


3. 创建 SQL 任务并绑定超时规则


接下来是核心步骤!创建一个 SQL 任务,执行的语句就写一条简单的查询,比如 SELECT * FROM actor;。

关键点在任务的高级设置里:

  • 找到超时时间设置项,把它勾选上,并设置为1分钟。

  • 超时策略下拉菜单中,选择“超时告警”或者“超时失败”,这样任务超时后就会触发我们配置好的告警流程。

这里有一张我设置时的截图,你可以对照着看:

4. 运行任务,坐等告警


点击运行任务!这里有个超级重要的细节:在弹窗的“通知策略”里,不能选择“都不发”。至少需要勾选“成功发”或“失败发”其中一项,告警链路才会被启用。

任务启动后,因为表被锁着,查询会一直等待。等到 1 分钟过后……叮!你的飞书机器人就会准时给你发来消息,告诉你任务已经超时。

来看下我收到的告警消息效果:

是不是很简单?这样一来,任何长时间运行的任务都逃不过你的眼睛。

我的经验总结与提醒


  • 超时时间要根据任务类型合理设置,备份任务可以长一些,关键查询可以短一些。

  • 除了飞书,告警插件也支持钉钉、企业微信等,配置逻辑类似。

  • 这个功能特别适合用于监控那些“说不准要跑多久”的任务,比如数据同步、复杂报表生成等,能帮你提前发现潜在的性能瓶颈。


希望这个分享对你有用!如果你在配置过程中遇到任何问题,或者有更好的玩法,欢迎在评论区一起交流讨论。让你的运维工作,因为一个小设置而变得更省心、更智能!



END






用户案例


DolphinScheduler Agent开源上线Cisco Webex天翼云Zoom网易邮箱 每日互动 惠生工程作业帮 博世智驾蔚来汽车 长城汽车集度长安汽车思科网讯食行生鲜联通医疗联想新网银行兴业证券唯品富邦消费金融 自如有赞伊利当贝大数据珍岛集团传智教育BigoYY直播  拈花云科太美医疗深圳某智能制造企业



迁移实战


Azkaban   Ooize(当贝迁移案例)airflow (有赞迁移案例)Air2phin(迁移工具)Airflow



最新发版消息



Apache DolphinScheduler 3.4.1 发布,新增任务分发超时检测



加入社区


关注社区的方式有很多:

  • GitHub: https://github.com/apache/dolphinscheduler
  • 官网:https://dolphinscheduler.apache.org/en-us
  • 订阅开发者邮件:dev@dolphinscheduler@apache.org(向邮箱发送任意内容,收到邮件后回复同意订阅即可)
  • X.com:@DolphinSchedule
  • YouTube:https://www.youtube.com/@apachedolphinscheduler
  • Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg

同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。

非代码方式包括:

完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。

‍代码方式包括:

查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3A%22first+time+contributor%22

优先级问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3Apriority%3Ahigh

如何参与贡献链接https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97_menu/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E_menu

如果你❤️小海豚,就来为我点亮Star吧!

https://github.com/apache/dolphinscheduler


你的好友小海豚拍了拍你

并请你帮她点一下“分享”