Skip to main content

Crate rustev_otel

Crate rustev_otel 

Source
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 abandon or 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/1 lines appended to a host-given file, one decision per write, stopping at max_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 enum and plan-metadata fields 3.6.1 names, and only when the policy’s action for it is allow: 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, a rustev.step per step evidence entry, a rustev.attempt per attempt, and rustev.policy last.
sink
The OpenTelemetry evidence sink (spec 028, 3.6 to 3.9.4).