Skip to content

引擎诊断、健康与运行配置 ​

工作流提供三个相互补充的观测入口:实例诊断解释单个实例的任务与执行路径,健康巡检定位异常实例,引擎诊断查看组件、队列、趋势与恢复动作。单个实例的诊断操作见流程监控与分析,后台执行能力见作业执行与恢复。

健康巡检 ​

页面入口为 工作流引擎 → 运维与集成 → 健康巡检。接口缺省卡滞阈值为 30 分钟,可传 1–1440 分钟;页面提供 10 分钟至 1 天的常用选项。巡检按当前身份的可见租户读取实例、任务与作业,识别以下问题:

问题类型级别说明
token_task_mismatchcritical超阈值活动任务所在节点无 active Token,任务无法正常提交,指向强制跳转修复
external_dispatch_failedcritical外部审批分派失败
external_dispatch_pendingwarning外部审批等待超阈值仍未派发
trigger_execution_failedcritical触发器作业最终失败
trigger_waiting_no_executioncritical触发器等待超阈值且无执行记录
subprocess_waitingwarning父任务等待子流程超阈值
delay_missing_wake_jobcritical延迟任务缺少唤醒作业
delay_overduecritical延迟到期但尚未唤醒
task_timeout_overduewarning超时作业到期但尚未处理
waiting_task_stuckwarning普通人工待办超阈值,需催办、转办或配置超时策略
workflow_event_outbox_failed / workflow_event_outbox_pendingcritical / warning事件分发失败或积压
instance_stalledcritical运行中实例既无待办 / 等待任务也无在途作业

每条任务只报告最高优先级问题,优先考虑 Token 缺失、作业异常,再考虑滞留,避免重复计数。人工审批等待时间和自动作业排队时间应分别判断。

引擎内省 ​

页面入口为 工作流引擎 → 运维与集成 → 流程监控 → 引擎诊断。内省汇总流程定义合法性、运行中实例和任务、执行 Token、延时 / 超时、触发器、外部审批、子流程、事件派发、事件监听器与调度器状态,并展示异常清单和实例诊断入口。

队列分布描述各类运行对象的 ready、running、delayed、failed 状态,也包含人工待办与等待对象;它与作业账本运行状态的到期 pending 积压是不同口径。调度器观测会结合已注册工作流执行池、存活节点、到期作业量、最老排队时长和排队 P95/P99,辅助区分人工等待、执行器缺失与后台积压。

事件遥测包含近一小时 / 24 小时成功失败量、上一周期对比、平均延迟、P95/P99、延迟分桶与 Apdex;健康分结合异常和队列状态生成。页面还提供平台健康趋势,便于观察持续故障。

延迟类指标(平均、P95/P99、直方图与 Apdex)共用同一口径:事件作业从入账到落终态的耗时,包含排队等待。缺省满意阈值 100ms 面向进程内处理,后台投递周期比它长时 Apdex 会明显偏低,这是口径使然而非引擎故障;页面在分值旁标注 T 与满意 / 容忍 / 沮丧分档,可按实际投递周期调整 engine.apdexThresholdMs。

健康阈值与趋势 ​

系统设置 → 系统设置 → 工作流引擎 运行时设置模块管理平台级诊断阈值,读取使用 system:setting:view,修改使用 system:setting:update。各流程定义的节点超时策略仍在设计器中配置。

设置缺省值用途
engine.healthWarn / healthCritical90 / 70健康分预警与严重分档
engine.backlogWarn / backlogCritical50 / 200队列积压分档
engine.errorRateWarn / errorRateCritical0.05 / 0.15错误率分档,以 0–1 比例配置
engine.apdexThresholdMs100Apdex 满意时长;容忍范围至该值的 4 倍

系统任务 workflow-engine-health-capture 每 5 分钟采集一次平台整体内省,写入 workflow_engine_health_snapshots。每个快照保存健康分、严重程度、队列汇总、事件错误率、严重 / 警告问题数和运行中实例数。健康趋势缺省读取近 24 小时,可查询至 30 天,最多返回 5000 个点;返回的阈值是当前生效设置。

快照的 backlog 汇总内省各队列 ready、running、delayed、failed 数量,可能包含人工待办和等待对象。事件错误率基于事件分发数据,作业失败率则基于执行尝试;不能用快照 backlog 或事件错误率代替账本的到期积压和作业失败率。

恢复动作 ​

恢复动作按类型圈定账本作业,处理到期 pending 和失效租约 running,跳过未到期计划。动作支持实例、入库时长和处理上限筛选,缺省上限 200、最大 500,可先预览数量与样本。

动作API action作业类型
重放事件派发replay-outboxevent_dispatch
恢复触发器重派recover-triggerstrigger_dispatch
恢复延时任务recover-delaysdelay_wake
处理超时任务process-timeoutstask_timeout
恢复子流程recover-subprocesssubprocess_spawn / subprocess_join
恢复 Webhook 投递recover-webhookswebhook_delivery

动作结果中的 recovered 是回收的失效租约数,requeued 是已提交唤醒提示覆盖的作业数,dead 是回收时因尝试耗尽或外部结果不明进入死信的数量。它们表示恢复扫描与补投结果,业务执行仍由 worker 领取账本完成。

这些动作不会直接重试 dead / failed 作业。死信需要先核对错误和外部结果,再使用作业重试与条件重放。automation_action、schedule_launch、外部审批和补偿动作也可在作业账本按类型查询与处置。

系统告警 ​

告警中心 → 告警规则 使用统一规则、持续时长抑制、静默和通知派发;告警中心 → 告警事件 跟踪告警处理。工作流指标的来源如下:

指标来源与口径
流程引擎健康分 workflowHealth最新平台健康快照的综合分
流程引擎队列积压 workflowBacklog最新快照的各队列汇总,含 ready / running / delayed / failed
流程作业死信数 workflowDeadLetter实时读取 dead 作业数
流程作业失败率 workflowFailureRate近一小时创建的执行尝试中 failed 的百分比
流程作业卡死数 workflowStuckRunning实时读取租约失效或超过执行截止时间的 running 数

告警评估器缺省每分钟读取指标,但健康分和引擎队列积压仍受 5 分钟快照节奏影响。没有快照时这两项返回 100 / 0;应同时检查采集任务与快照时间,避免把缺采样当成已经完成巡检。上述指标为平台整体口径,通知渠道和告警权限见监控与告警。

运行配置 ​

进程与网络配置来自 packages/server/.env 或部署环境;可在后台修改的健康阈值来自上面的运行时设置模块。完整配置与多实例部署见部署说明。

配置工作流中的作用
ZENITH_ROLESapi 提供 API、回调和 WebSocket 入口;worker 执行作业池、调度扫描、事件分发与归档队列;all 同时运行两种角色。仅开发环境允许缺省 all,其余环境必须显式设置
WORKER_HEALTH_PORT纯 worker 的 /health、/ready、/metrics 端口,缺省 3301;纯 worker 不提供业务 HTTP 路由
WORKFLOW_OUTBOUND_ALLOWED_HOSTS为确需访问内网的工作流出站目标设置精确允许清单,逗号分隔,支持 host、*.suffix 与 CIDR;缺省不放行内网,保存和执行时都继续校验
PUBLIC_BASE_URL对外可达的服务基址,缺省 http://localhost:3300;用于触发器回调 URL、审批单验真链接等公开地址,必须与接收方 / 扫码者实际可访问的入口一致

API 与 worker 共享同一数据库,后台事件产生的 WebSocket 推送经 Redis 扇出到 API 节点。只有 API 可用不能证明工作流后台执行正常,应同时检查 worker 就绪探针、已注册执行池心跳与作业运行状态。出站允许清单不替代连接器同源约束、DNS 固定校验和禁止重定向,详见出站安全。

数据保留 ​

每日 data-retention 按数据保留策略清理观测与运行数据。终态实例的 workflow_tokens 缺省保留 90 天,只处理通过、驳回、撤回、取消实例;超过保留期后,Token 轨迹不再完整。system_scheduler_nodes 按最后心跳清理,缺省保留 7 天;近 10 分钟的 Worker 可见窗口是运行面板口径,与物理保留期独立。健康快照的保留同样由数据保留策略管理。

API 与权限 ​

方法路径权限
GET/api/workflows/healthworkflow:health:view
GET/api/workflows/engine/introspectionworkflow:instance:monitor
GET/api/workflows/engine/health-historyworkflow:instance:monitor
POST/api/workflows/engine/actions/{action}/previewworkflow:instance:monitor
POST/api/workflows/engine/actions/{action}workflow:engine:operate,写操作审计

实例诊断、挂起 / 恢复、强制跳转和 Token 干预的权限见权限与范围控制。

Built with VitePress for local documentation preview.