zerodds-monitor
Layer 4 — Core Services. Observability substrate for the ZeroDDS stack.
- Source: crates/monitor
- API docs: docs.rs/zerodds-monitor
zerodds-monitor delivers a counter/gauge/histogram registry,
a Prometheus text exporter, a W3C Trace-Context PID codec, and the
standard span schema. Industry-standard output (Prometheus +
OpenMetrics + W3C Trace-Context + OpenTelemetry semantic conventions)
instead of a proprietary topic schema.
Spec anchors
docs/specs/zerodds-monitor-1.1.md§1-§11 — complete spec.- Industry standards: Prometheus text format v0.0.4, OpenMetrics, W3C Trace-Context 1.0, OpenTelemetry semantic conventions.
Layer position
Layer 4 — substrate for
zerodds-observability-otlp (OTLP/HTTP/JSON
exporter), tools/dashboard (Prometheus scrape), tools/perf (latency
histograms). Cross-layer wire-up in transport-udp, rtps (feature
metrics), discovery (feature metrics), dcps (feature metrics),
security-crypto (feature metrics).
Quickstart
use zerodds_monitor::{default_registry, Labels, metric_names};
let reg = default_registry();
let counter = reg.counter(
metric_names::DDS_DCPS_SAMPLES_WRITTEN_TOTAL,
Labels::new().with("topic", "VehicleTracking.TrackUpdate"),
);
counter.inc();
counter.add(5);
println!("{}", reg.render_prometheus());
PID 0x0D00 roundtrip:
use zerodds_monitor::{TraceContextPid, TraceParent};
let tp = TraceParent::new(/* ... */);
let pid = TraceContextPid::new(tp, None);
let mut buf = Vec::new();
pid.encode_inline_qos(&mut buf);
let decoded = TraceContextPid::decode_inline_qos(&buf).expect("roundtrip");
Feature flags
| Feature | Default | Purpose |
|---|---|---|
std |
✅ | Mutex + atomics + OnceLock. |
alloc |
✅ | Vec/Arc/String. |
prometheus-server |
✅ | Mini-HTTP /metrics endpoint. |
Stability
1.0.0-rc.3. Public API + metric names + PID 0x0D00 wire format +
span names are RC1-stable.
zerodds-monitor
Layer 4 — Core Services. Observability-Substrate fuer den ZeroDDS-Stack.
- Quelle: crates/monitor
- API-Docs: docs.rs/zerodds-monitor
zerodds-monitor liefert Counter/Gauge/Histogram-Registry,
Prometheus-Text-Exporter, W3C-Trace-Context-PID-Codec und das
Standard-Span-Schema. Industrie-Standard-Output (Prometheus +
OpenMetrics + W3C-Trace-Context + OpenTelemetry-Semantic-Conventions)
statt eines proprietaeren Topic-Schemas.
Spec-Anker
docs/specs/zerodds-monitor-1.1.md§1-§11 — komplettes Spec.- Industrie-Standards: Prometheus-Text-Format v0.0.4, OpenMetrics, W3C-Trace-Context 1.0, OpenTelemetry-Semantic-Conventions.
Schichten-Position
Layer 4 — Substrate fuer
zerodds-observability-otlp (OTLP/HTTP/JSON-
Exporter), tools/dashboard (Prometheus-Scrape), tools/perf (Latenz-
Histogramme). Cross-Layer-Wire-up in transport-udp, rtps (Feature
metrics), discovery (Feature metrics), dcps (Feature metrics),
security-crypto (Feature metrics).
Quickstart
use zerodds_monitor::{default_registry, Labels, metric_names};
let reg = default_registry();
let counter = reg.counter(
metric_names::DDS_DCPS_SAMPLES_WRITTEN_TOTAL,
Labels::new().with("topic", "VehicleTracking.TrackUpdate"),
);
counter.inc();
counter.add(5);
println!("{}", reg.render_prometheus());
PID 0x0D00 Roundtrip:
use zerodds_monitor::{TraceContextPid, TraceParent};
let tp = TraceParent::new(/* ... */);
let pid = TraceContextPid::new(tp, None);
let mut buf = Vec::new();
pid.encode_inline_qos(&mut buf);
let decoded = TraceContextPid::decode_inline_qos(&buf).expect("roundtrip");
Feature-Flags
| Feature | Default | Zweck |
|---|---|---|
std |
✅ | Mutex + Atomics + OnceLock. |
alloc |
✅ | Vec/Arc/String. |
prometheus-server |
✅ | Mini-HTTP /metrics-Endpoint. |
Stabilitaet
1.0.0-rc.3. Public-API + Metric-Namen + PID-0x0D00-Wire-Format +
Span-Namen sind RC1-stabil.