适用于运维与 SRE 团队,指导如何排查/恢复知识空间的入库、融合与反馈链路。所有命令均在仓库根目录执行,默认使用本地
backend/etc/config.yaml。
| 场景 | 入口 | 关键指标/日志 |
|---|---|---|
| 入库异常/长时间运行 | Grafana → Knowledge Space 看板 |
knowledge.ingestion.* event、reports/_state/knowledge-spaces.json 中的 ingestion 段 |
| 融合策略降级/冲突 | Grafana → fusion-pipeline 看板 |
fusion.source.failed 事件、scripts/fusion/rollback_strategy.mjs 运行结果 |
| 反馈 SLA 超时 | Grafana → feedback-loop 看板 |
reports/_state/knowledge-spaces.json 中的 feedback 段、knowledge.feedback.reprocess 事件 |
| 增量同步/版本发布异常(US6) | Grafana → Knowledge Delta Sync 看板 |
reports/_state/knowledge-update.json 的 delta 段、backend/reports/_state/knowledge-delta.json |
| 事件热修异常(US7) | Grafana → Event Hotfix 看板 |
reports/_state/knowledge-update.json 的 event 段、backend/reports/_state/knowledge-event.json |
| 衰减巡检/空白治理(US8) | Grafana → Knowledge Decay Monitor 看板 |
reports/_state/knowledge-update.json 的 decay 段、backend/reports/_state/knowledge-decay.json |
| 租户灰度发布(US9) | Grafana → Tenant Release Control 看板 |
reports/_state/knowledge-update.json 的 release 段、backend/reports/_state/knowledge-release.json |
-
确认任务状态
cd backend && go test ./tests/contract/knowledge_space -run TestTriggerIngestionHTTP
若失败,参考
internal/service/knowledge_space/ingestion_service.go日志。 -
重新触发
http POST :8077/api/v1/admin/knowledge-spaces/<space-id>/ingestion-jobs \ sourceType=pdf sourceUri=s3://bucket/doc.pdf priority=high
OCR/Processor 常见分支:
- blocked /
errorCode=ocr_required:当前文档需要 OCR,但后端 OCR 能力不可用。先确认系统依赖已安装(tesseract+pdftoppm或mutool),并在etc/config.yaml设置knowledge_space.ingestion_processors.ocr_available: true后重跑;或在 UI 的入库高级设置里关闭OCR required(会降级)。 - completed +
errorCode=degraded/reason=ocr_unavailable:OCR 不可用导致降级,可能出现内容为空/引用覆盖下降;按上面步骤启用 OCR 后重跑入库。
- blocked /
-
校验指标
cat reports/_state/knowledge-spaces.json | jq '."space-id".ingestion'- Grafana
Knowledge Space面板的覆盖率/嵌入率是否回到 100%
-
告警与记录
通过knowledge_space域的 IM Webhook(backend/etc/config.yaml→knowledge_space.notifications.im_webhook)发送处理摘要。
-
查看冲突队列(HTTP)
http GET :8077/api/v1/admin/knowledge-spaces/<space-id>/fusion-strategies
-
CLI 回滚
POWERX_BASE_URL="http://127.0.0.1:8077" POWERX_TOKEN="$ADMIN_TOKEN" \ node scripts/fusion/rollback_strategy.mjs <space-id> <strategy-id>
输出
strategyId、deploymentState后在 Grafanafusion-pipeline看板确认降级已解除。 -
事件/审计
- 事件总线:
knowledge.space.fusion - 审计表:
knowledge_audit_trail_entries(action=fusion.rollback)
- 事件总线:
-
提交或复现反馈
http POST :8077/api/v1/admin/knowledge-spaces/<space-id>/feedback \ severity=high issueType=accuracy reportedBy=ops@powerx.local \ linkedChunks:='["<chunk-uuid>"]' notes='answer incorrect'
-
监控再加工任务
- 事件:
knowledge.feedback.reprocess reports/_state/knowledge-spaces.json | jq '."space-id".feedback'
- 事件:
-
批量查询(gRPC)
grpcurl -d '{"space_id":"<space-id>"}' \ -plaintext localhost:9001 \ powerx.knowledge.v1.KnowledgeSpaceAdminService/ListFeedbackCases -
SLA 超时时的处理
- 若
case.status仍为in_progress且sla_due_at < now():- 手动触发 reprocess(复用上方 HTTP 请求)
- 将案例状态更新为
escalated,通知 Ops 群组 - 在
docs/guides/knowledge_space/smoke_checklist.md记录本次处理摘要
- 若
这些脚本用于“巡检/对齐配置/导出报告”,不替代后端服务。报表目录约定见
docs/ops/reports_layout.md。
- Delta(US6):
node scripts/ops/knowledge-delta-job.mjs --space=<space-uuid> --source=default - Event(US7):
node scripts/ops/knowledge-event-replay.mjs - Decay(US8):
node scripts/ops/knowledge-decay-scan.mjs --dry-run --space=<space-uuid> --detected=3 - Release(US9):
node scripts/ops/knowledge-release-matrix.mjs --matrix=backend/config/knowledge/tenant_release_matrix.yaml