37 lines
1.3 KiB
Markdown
37 lines
1.3 KiB
Markdown
## Context
|
|
|
|
The Data Plane already collects process-wide atomic counters and gauges. Only active connections and egress Kbps cross the authenticated heartbeat boundary.
|
|
|
|
## Goals / Non-Goals
|
|
|
|
**Goals:**
|
|
|
|
- Carry the existing low-cardinality observations with explicit units.
|
|
- Bound every numeric field and enumerate provider state.
|
|
- Keep registration capacity distinct from measured traffic.
|
|
|
|
**Non-Goals:**
|
|
|
|
- Add session, route, endpoint, credential, label, or payload fields.
|
|
- Define a new telemetry transport.
|
|
- Publish a Protocol version.
|
|
|
|
## Decisions
|
|
|
|
- Nest the values in required `GatewayTelemetry` so heartbeat telemetry is one strict atomic contract.
|
|
- Use cumulative counters and microsecond delay totals plus processing samples; consumers can derive rates/averages without losing raw observations.
|
|
- Keep loss as parts per million and provider state as a bounded enum.
|
|
|
|
## Risks / Trade-offs
|
|
|
|
- [Cumulative counters approach signed integer limits] → Bound at signed 64-bit and saturate consumer conversions.
|
|
- [New required object breaks RC6] → Test locally and publish only under separate immutable-version authorization.
|
|
|
|
## Migration Plan
|
|
|
|
Regenerate all bindings locally, update both consumers through the temporary workspace, and stop at the immutable publication boundary.
|
|
|
|
## Open Questions
|
|
|
|
None.
|