Expand description
Rustev’s OpenTelemetry evidence sink (spec 028).
Telemetry is derived after the fact from the run record the runtime
already delivers: the runtime gains no hook, and attaching the sink
changes no judgment and no record byte. Every exported value passes the
redaction policy of rustev_contract::redaction, which defaults to deny
for caller, third-party, attributed-claim and generated text.
Telemetry describes a proposal or an unresolved outcome; no span, status, receipt or sampling decision is or implies an authorization (principle VI).
Re-exports§
pub use config::AckMode;pub use config::AlwaysSampleOn;pub use config::ConfigError;pub use config::ParentSampling;pub use config::RootSampling;pub use config::Sampling;pub use config::SinkConfig;pub use ids::IdSource;pub use ids::RandomIds;pub use ids::SeededIds;pub use jsonl::JsonlError;pub use jsonl::JsonlExporter;pub use project::Anchor;pub use project::AnchorKind;pub use project::Bindings;pub use project::Projected;pub use project::ProjectionInput;pub use project::ProjectionUnknown;pub use project::RootIds;pub use project::UsageKeys;pub use project::project;pub use sink::BeginError;pub use sink::Begun;pub use sink::DecisionTelemetry;pub use sink::ExportError;pub use sink::Flow;pub use sink::LogRecord;pub use sink::Measurement;pub use sink::OtelSink;pub use sink::OtelStats;pub use sink::SinkClock;pub use sink::SystemClock;pub use sink::TeeSink;pub use sink::TelemetryExporter;
Modules§
- config
- Sink configuration (spec 028, 3.2.4, 3.6.3, 3.7, 3.8 and 3.9.4): every bound has a stated range, and a configuration outside it is refused at construction.
- context
- Trace context ingestion and the exchange join buffer (spec 028, 3.7):
bounded tables, entries removed on delivery, on
abandonor after their time to live by the sink’s monotonic clock. - endpoint
- The collector endpoint allowlist (spec 028, 3.9.2): every OTLP destination is checked here, before any connection or DNS lookup, and refused unless its origin is exactly in the host’s list.
- ids
- Trace and span ids (spec 028, 3.5 and 3.7): W3C sizes, never all zero.
- jsonl
- The JSONL development exporter (spec 028, 3.10.2):
rustev.trace/1lines appended to a host-given file, one decision per write, stopping atmax_bytes. It writes what the projection produced, so the same redaction policy and value bound apply as for OTLP; there is no unredacted mode. - metrics
- Metric instruments (spec 028, 3.6.1 and 3.6.2), held in memory and
read as one snapshot. Every delivered record updates them, sampled or
not. A metric attribute is only one of the
enumand plan-metadata fields 3.6.1 names, and only when the policy’s action for it isallow: no id, digest or text becomes a dimension, whatever the policy says. - project
- The projection of a delivered run record into one decision’s span tree
(spec 028, 3.5):
rustev.decision, arustev.stepper step evidence entry, arustev.attemptper attempt, andrustev.policylast. - sink
- The OpenTelemetry evidence sink (spec 028, 3.6 to 3.9.4).