feat(observability): queued 行龄告警——目标池零 worker 的超龄排队行具名可观测(ADR-002 修订跟进单)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 43/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- python, redis
- Ambito
- backend, observability
Direzione di ricerca
Start by reading reconcile_summary, engine_sync, flow_store, and capability_gate.runtime_pool_alive to follow existing polling, queued-row, and runtime-pool patterns. Then locate the console lifecycle and health/metrics entry points. Done means aged queued rows for an empty runtime pool produce a named warning, a gauge, and a health count, while live pools and fresh rows stay quiet and one failed poll does not stop later checks.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
优先级 P2 · 依赖:无
基线 HEAD = 6f6fb862
Summary
Go 恢复生产可选 runtime(ADR-002 修订 2026-10-27)后,最后一处无防护的搁浅面:worker 停机窗口入队后、worker 一直没拉起——
- 受理面在场点名(
_admission_version_row→capability_gate.runtime_pool_alive)已于 2026-10-27 晚降级为具名 WARNING + 放行:worker 停机窗口内入队是合法运维模式(Console E2E chaos-wr 契约「停机不丢、拉起后消费」保护的对象),硬拒会打断该契约(实测:首版 422 令 chaos-wr 必红,Console E2Erun 40467384887)。 - #300 门对空池 fail-open(发布面兼容取舍)。
flow_worker投递侧只保证「投递失败可观测」——「投递成功无人消费」现状零信号。
⇒ 组合结果:start 放行(合法)+ worker 永不拉起(无人消费)= queued 行静默滞留,唯有人盯队列才发现。三处设计决策均正确,缺的是滞留本身的可观测。
影响
- runtime=go 部署只装了 console 没拉 go_worker → go 流程全部入队后静默 pending;
- worker 全灭窗口(崩溃/误停)超过运维预期 → 滞留无告警,靠用户投诉发现。
建议
console 集群档生命周期内起周期巡检线程(对齐 reconcile_summary/engine_sync 的「降级必须可观测」先例):
- 每 N 秒(缺省 300,env
PLAITA_QUEUED_AGE_WATCH_INTERVAL)扫flow_store中status=queued的占位行(plaita#273 形状),按目标 runtime 分组统计「排队时长 > 阈值」(缺省 900s,envPLAITA_QUEUED_AGE_WARN_SECONDS)的行数; - 超龄组逐 runtime 调
capability_gate.runtime_pool_alive(redis, runtime):池空 → 具名 WARNING(点名 runtime/超龄行数/最老行龄)+ 指标暴露(metrics 端新增 gauge,如plaita_queued_aged_rows{runtime=...})+/health计数(对齐 engine_sync degraded 形状); - 池有活 worker(含不可分类旧 build 条目——与点名同取舍)→ 只计数不告警(worker 在消化,排队是正常态);
- 阈值内不告警(停机窗口短于阈值属正常 chaos 语义)。
验收条件:
- 注入「超龄 queued 行 × go 池空」→ WARNING 具名(runtime/行数/最老行龄)+ metrics gauge > 0;
- go 池有活 worker(可分类 manifest)→ 无告警;
- 新鲜 queued 行(< 阈值)→ 无告警;
- 本地档(engine backend 进程内执行,无 queued 态)零影响;
- 巡检线程异常不退出(单轮失败隔离,同 reconcile 先例)。
边界
- 不做自动重派/自动拉起(运维动作仍人工);
- 不动 chaos-wr 契约与受理面放行语义;
- suspended 行的搁浅(等唤醒类)已有订阅超时兜底(#56 系),不在本单。
- Lingua principale
- Python
- Stelle
- 0
- Fork
- 1
- Merge medio
- 1h 52m
- PR unite (30g)
- 15
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di jeffkit/plaita
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 56/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 4/5 1-2 giorni Idoneità per principianti 43/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di jeffkit/plaita
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
weecology/DeepForest#1445 ·
-
agent-ready priority: medium status: ready
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
melodic-software/claude-code-plugins#11864 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
PolicyEngine/policyengine-uk#2785 ·
I maintainer di solito rispondono entro 2 giorni
-
correction metadata
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 62/100
acl-org/acl-anthology#10724 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
use-agent-os/agent-os#3739 ·
I maintainer di solito rispondono entro 1 giorno