Drumbeats 是一款监控服务,旨在解决后台任务和服务静默失败的问题。其核心理念是心跳监控:每个成功运行的任务主动发送一个 ping 信号,如果预期时间内未收到信号,则触发告警。与外部轮询和日志抓取不同,心跳监控能够发现任务未运行、运行但静默失败、或运行时间过长等轮询和日志难以察觉的问题。
主要能力:
- 支持多种监控类型:Cron 心跳、事件驱动、HTTP 正常运行时间监控,所有类型集中管理。
- 捕获漏掉的运行:如果任务未在计划加宽限期内发送成功 ping,会触发 MISSED 告警。
- 捕获延迟运行:超过预期时间运行会触发宽限期告警。
- 捕获失败运行:显示退出码,失败运行会浮出水面。
- 捕获挂起运行:收到开始 ping 但没有对应的成功 ping 时发出告警。
- 公开状态页面:一键将单个监控器转为免费公开页面,或构建包含组件、事件和维护时间线的品牌化状态页面(Pro 及以上支持自定义品牌、RSS 和订阅者)。
- 通知渠道:支持邮件、Slack、Telegram、Discord、Webhook、浏览器推送、Microsoft Teams 和 PagerDuty。
- AI 辅助设置:通过 MCP 协议,可使用自然语言命令(如“列出我的监控器”)与 Claude Desktop、Cursor、VS Code、Claude Code 等 AI 编码助手集成,OAuth 登录,无需 API 密钥。
使用方式:
- 集成简单:每个任务只需一行代码,支持任何语言。发送 HTTP 请求到 api.drumbeats.io/mcp 或直接使用 HTTP 请求。
- 无需 SDK、代理或库。
- 可监控防火墙后或私有 VPC 中的任务,因为任务发出的是出站 HTTP 请求,无需入站探测。
- 适用于任何 cron 守护进程、队列或调度器,从 EC2 迁移到 Kubernetes 时 curl 行保持不变。
- 免费方案:最多 50 个监控器,每月 200K Beats,最小间隔 1 分钟,ping 历史 250 条/监控器,负载大小最大 100 KB,无限团队席位,支持所有通知渠道。
- Pro 方案:无限监控器,每月 1M Beats,最小间隔 30 秒,ping 历史 1,000 条/监控器,负载大小最大 1 MB,简单状态页自定义域名,高级状态页 1 个品牌页面(最多 25 个监控器),状态页订阅者最多 100/页。
- Business 方案:每月 3M Beats,ping 历史 5,000 条/监控器,负载大小最大 2 MB,高级状态页 3 个品牌页面(无限监控器),状态页订阅者最多 1,000/页。
- 所有方案均包含无限团队席位。
适用场景:
- 夜间数据库备份:如果备份任务静默失败,会触发 MISSED 告警。
- SSL 证书续期:每周心跳可在证书过期前发现未触发的续期。
- 队列工作者(如 Sidekiq、Celery、BullMQ):工作者因消息阻塞或 OOM 被杀且无日志输出时,心跳可在几分钟内发现。
- 定时爬虫和数据同步:仅在确实写入数据时发送成功 ping,避免空载荷返回退出码 0 的伪健康状态。
- 支付和发票对账:Stripe 付款、手动发票批次、催款邮件等金融任务失败时,在早会前通知值班人员。
- 其他周期性任务:任何需要确保按时成功运行的后台作业。
限制:
- 免费方案监控器数量有限(50 个),Beats 配额有限(200K/月),最小间隔 1 分钟,ping 历史有限。
- 高级状态页面、自定义品牌、RSS、订阅者功能需要 Pro 或 Business 方案。
- 需要任务代码中集成发送 ping。