zerodds-monitor

Layer 4 — Core Services. Observability substrate for the ZeroDDS stack.

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.

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.