# 建立 DSM 运行合同

## When to use

在发布前定义监控、安全、readiness、关闭和容量验证时使用本任务。

## Inspect first

- 找到 diagnostics、metrics、trace、安全扩展、生命周期状态和 JMH fixture。
- 记录部署平台如何判断 ready、停止接流和完成关闭。
- 阅读[观察面](/zh-CN/19-observability.html)到[容量证据](/zh-CN/22-capacity.html)。

## Required inputs

取得威胁模型、密钥托管、指标后端、值班责任、滚动发布流程、目标负载和容量判据。

## Implementation path

1. 为副本差异建立 diagnostics、低基数 metrics 和 trace 的联合路径。
2. 分开验证准入、验签、加密、防重放、限流和审计。
3. 只有 Runtime 达到 `RUNNING` 且依赖可用时开放 readiness。
4. 关闭时先停止新流量，再 freeze registry、等待排空并关闭 Runtime。
5. 用固定环境、参数和原始结果运行 JMH 或场景基准。

## Constraints

- 示例密钥和本地 backend 不提供生产密钥托管或值班能力。
- 微基准不能单独推出生产容量 SLA。
- Runtime 状态不替代平台负载均衡和 drain 行为。

## Failure patterns

- 高基数业务 key 直接进入 metrics label。
- 将加密与身份认证合并成同一个门。
- 只报告平均延迟，不保留环境、参数、分位数和原始结果。

## Validation

执行安全拒绝路径、readiness 与关闭测试，以及带原始结果的容量 smoke。目标环境验收单独记录。

## Evidence

- [验证范围](/agent/zh-CN/v/0.1.2/reference/validation-scopes.md)
- [安全变更边界](/agent/zh-CN/v/0.1.2/policies/safe-change-boundaries.md)
- [DSM 固定源码](https://github.com/xbdotl/dsm/tree/505e7557da94e3f74da84ecf75bc8a9282732e4f)
