# R1.5.2 任务报告

## 结论

共享 observability 控制面已在同一 YAML-first 架构中加入 Prometheus。Prometheus 只作用于 `metricsBackend.targetIds` 选中的 target，OTel Collector 与 Tempo 继续承担 trace authority；指标故障和版本漂移只形成非阻塞 warning。

## 变更

- `config/platform-infra/observability.yaml` 拥有 Prometheus image、目标、存储、保留、端口、服务发现和查询预算。
- NC01 渲染 ServiceAccount、RBAC、ConfigMap、PVC、Deployment 与 ClusterIP Service；D518/JD01 不渲染或访问 Prometheus。
- `metrics-query` 提供受 YAML timeout、series 和 response bytes 预算约束的有界 PromQL 查询。
- selector 使用严格 Kubernetes qualified name/value，渲染为锚定且转义的 RE2 字面量；label/annotation meta-label 统一规范化。
- 显式 metrics path 优先，仅在 annotation 缺失时回退到 YAML `defaultPath`。
- 未部署、未执行 confirm；真实 StorageClass、镜像拉取和 scrape target 留给 R1.6 受控 rollout 验证。

## 验证

- `bun test scripts/src/platform-infra-observability.test.ts`：8 pass，0 fail，100 assertions。
- `platform-infra observability --help` 暴露 scoped `metrics-query`。
- NC01 plan：`prometheus=enabled`，15 个对象。
- D518/JD01 plan：`prometheus=disabled-for-target`，各 8 个对象，无 Prometheus manifest、status capture/probe 或远端 query。
- 模块导入与 `git diff --check` 通过。

## 交付

- 实现 commit：`f516691a`。
- target 隔离与发现规则纠偏：`ef3b5fde`。
- selector 严格渲染纠偏：`c3762b31`。
- 目标分支 merge commit：`2ee27b0c`。
- 子 issue：[pikasTech/unidesk#1956](https://github.com/pikasTech/unidesk/issues/1956)。
- Post-task 未建议新增 FEATURE/BUG issue。
