Observability — stderr JSON sink
The runnable companion to the observability chapter's sink layer: a
DcpsRuntimestarted withStderrJsonSink, then a writer and a reader so the lifecycle events actually fire.
- Example:
observability-stderr-sink - Repository: zero-dds-snippets
What it shows
RuntimeConfig.observability = Arc::new(StderrJsonSink::new()), verbatim from the chapter.- One JSON line per lifecycle event on stderr; order may vary.
- Runs on domain 9 so it does not collide with the domain-1 first-publisher companion.
Build and run
cargo run
Output
{"level":"info","component":"dcps","name":"user_writer.created","attrs":{"topic":"Telemetry","type":"Robot::Pose","reliable":"true"}}
{"level":"info","component":"dcps","name":"user_reader.created","attrs":{"topic":"Commands","type":"Robot::Cmd"}}
Taken verbatim from the example's own README.
See also
Observability — stderr-JSON-Sink
Der lauffähige Begleiter zur Sink-Ebene des Observability-Kapitels: ein
DcpsRuntime, gestartet mitStderrJsonSink, dann ein Writer und ein Reader, damit die Lifecycle-Events tatsächlich auslösen.
- Beispiel:
observability-stderr-sink - Repository: zero-dds-snippets
Was es zeigt
RuntimeConfig.observability = Arc::new(StderrJsonSink::new()), wörtlich aus dem Kapitel.- Eine JSON-Zeile je Lifecycle-Event auf stderr; die Reihenfolge kann variieren.
- Läuft auf Domain 9, damit es nicht mit dem First-Publisher-Begleiter auf Domain 1 kollidiert.
Bauen und ausführen
cargo run
Ausgabe
{"level":"info","component":"dcps","name":"user_writer.created","attrs":{"topic":"Telemetry","type":"Robot::Pose","reliable":"true"}}
{"level":"info","component":"dcps","name":"user_reader.created","attrs":{"topic":"Commands","type":"Robot::Cmd"}}
Wörtlich aus dem README des Beispiels übernommen.