该技能提供一种模式,让每个 Dagster 资产拥有独立的调度与 healthchecks.io 检查,避免单一 sync_all_hourly 作业失败导致所有监控信号中断。主要能力包括:通过 healthchecks.io API 创建和删除检查;在 definitions.py 中为每个资产生成 ScheduleDefinition(cron 为 "0 * * * *",并务必设置 default_status=dg.DefaultScheduleStatus.RUNNING,否则新部署时调度默认停止不会触发);使用通用 run_status_sensor 在运行开始、成功、失败时向对应 ping URL 发送请求;通过 Nix 模块按资产注入 HEALTHCHECK_PING_URL_<ASSET> 环境变量;并可用 GraphQL 查询调度与传感器状态、启动已停止的调度。使用时需配置 healthchecks.io API Key(以 X-Api-Key 请求头传递),ping URL 由 API 返回。限制与注意:调度默认状态为 STOPPED,必须显式设为 RUNNING;Nix 中使用 lib.strings.toUpper,因为 builtins.toUpper 在 NixOS Nix 中不存在;bugster-setup 服务会执行 git reset --hard origin/main,本地修改会被覆盖,改动需推送到 GitHub 后才能部署。API key 等敏感信息原文中提供了示例值,不在此重复。
dagster-per-asset-healthchecks
部署与运维
更新于 10-15 21:36