observability dashboard of wasi modules and the data streams
This is a bit hgh level but i will try to explain my use case.
Also i digged a bit into the docs, issues and code, but i dont think this is a duplicate ???
I DID FIND A DIG ABOUT A CONTROL PLANE HERE: https://github.com/fermyon/spin/pull/417#discussion_r863228069
I think spin is amazing and i want to build some gui tooling to allow dev to have some insight to what spin is doing. Sort of like a dashboard that has
- event when new modules loads / changes ( part of hot reloading issue).
- ability to inspect the data flowing in and out of the pipes ( http, redis, other future ones ).
- ability to visualise the flow between the modules.
Because Spin allows a sort of micro service development pattern, being able to "see" what is happening acts as a bit of a debug helper. It would probably have many other use cases also.
Because different dev will want perhaps different things in their dashboard, it would be good is this was a designed as a sort of control plane API pushing over websockets or QUIC web transport.
Here is an example BUS that could tap into SPIN control plane for example https://github.com/aperturerobotics/bifrost. It has many serialization and transport options. Its also able to change bindings at runtime or have many transport bindings to the same source data. The reason i added this is to show the intent of what i would use to build a dashboard on top of spin.
As i write this its almost reminding me of the Envoy control plane, which is a huge beast.
I am also wondering is some of this crosses over with hippo: https://github.com/deislabs/hippo
Anyways would be cool to here other thoughts on this.
As a bit of background on the control plane discussion, there is also #144 - the title of which is a bit misleading, but it does start to explore some of the roles in Spin, how they might be decomposed, and the possible relationship with Hippo. It's a conversation we need to pick up for sure!