# Datastream demo cluster Spins up a small cluster of real `swactor` nodes in Docker, all shipping their per-node telemetry **datastream** to a single collector that prints the raw stream — live, frame-by-frame — to stdout. The standalone relay ships its own stream too, so the whole fleet (relay included) is visible on one wire. This is the "see the new metrics scheme working" demo. No dashboard; just the raw stream. ## One-liner ```sh ./tests/docker/datastream-demo.sh ``` Builds everything, brings the cluster up in the foreground, and streams the raw datastream to your terminal. Ctrl-C tears it down. (Everything below is the manual breakdown of what that script does.) ## What runs | Service | Role | |-------------|-----------------------------------------------------------------------| | `collector` | Binds UDP `:7700`, decodes each delivery, prints it on arrival | | `relay` | `swactor-iroh-relay`; also ships its own datastream to the collector | | `seed` | Coordinator node (fixed identity) | | `node-2/3` | Worker nodes that join the seed | The emitter is default-on in every node; setting `SWACTOR_DATASTREAM_COLLECTOR=` (as the compose file does) swaps the default no-op sink for the UDP frame sink. Each node emits `identity` once, then `host.resource` / `runtime.stats` / `transport.internals` every ~1s, `membership` transitions as peers come and go, and any managed process's stdout/stderr as `proc.