028-opentelemetry-evidence-sink
OpenTelemetry evidence sink and redaction policy
Approved (A-24) as its own reviewable change before code; implemented in seven increments. A new optional integration, `integrations/rustev-otel`, exports each delivered run record as OpenTelemetry spans, metrics and optional log records, with GenAI semantic-convention attributes on backend attempts, W3C trace-context parenting from the host, OTLP over gRPC or HTTP to allowlisted host collectors only, and a local JSONL exporter. Every exported field passes a declared redaction policy, `rustev.redaction/1`, that defaults to deny for caller, third-party, attributed-claim and generated text. The policy document, its evaluation, the keyed digest and the `rustev.trace/1` span line document are pure additions to `rustev-contract`; `rustev trace tail` is added to the CLI with no OpenTelemetry dependency; the boundary check gains the telemetry exporter family. Approval does not authorize a release, a deployment, an export to any collector outside tests, or real-user data.
Read the full pinned specification ↗Relationships
depends on
depended on by
Claimed units
- establishes
{ "kind": "directory", "path": "integrations/rustev-otel/" } - extends
{ "nature": "additive", "spec": "002-decision-contract-and-pure-core", "unit": { "kind": "directory", "path": "crates/rustev-contract/" } } - extends
{ "nature": "amending", "spec": "006-cli-surface", "unit": { "kind": "directory", "path": "crates/rustev-cli/" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "directory", "path": "tools/rustev-boundaries/" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Cargo.toml" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Cargo.lock" } } - extends
{ "nature": "additive", "spec": "031-public-api-and-release-family", "unit": { "kind": "directory", "path": "tools/rustev-release/" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Makefile" } }
Source headings
- 028: OpenTelemetry evidence sink and redaction policy
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 Placement of the pure parts
- 3.2 Pinned conventions and schema versions
- 3.3 Field classes
- 3.4 Redaction policy
- 3.5 Span model
- 3.6 Metrics and logs
- 3.7 Trace context, plans and exchange records
- 3.8 Sink policies, acknowledgement and loss
- 3.9 Export and endpoint allowlist
- 3.10 The JSONL development exporter and `rustev.trace/1`
- 3.11 `rustev trace tail`
- 3.12 Dependency boundary
- 3.13 Binding principles
- 3.14 Overhead benchmark
- 4. Out of scope
- 5. Observable negative cases
- Acceptance
- Verification
- Implementation record
- Decisions at approval
Frozen anchors
No frozen anchors declared.