-
Notifications
You must be signed in to change notification settings - Fork 148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
visualizing streams and changing variables during runtime #464
Comments
The instances of streamz are pretty simple things, and you can mutate them in place freely during runtime. To dynamically attach and detach nodes, you want the Similarly, you can mutate any attribute of a streams node instance. Some nodes, like Note that some sources also have explicit |
Oh, and for visualising, I don't think there's any tool that will redraw the event graph itself upon changes such as I've described. Probably holoviz tools could be made to do it with a little hackery. Since the main network viz option for streamz is graphviz, it is restricted to static output (but you could call it multiple times, whenever). |
Thank you @martindurant that is helpful. I think I need to learn some techniques to introspect the entire streamz graph from a separate thread that runs my visualization. maybe I can branch every operator and mirror the metadata and events into this new visualization thread, display the events and operator status. and also create a feedback stream into each operator object that calls a function '_update_operator'. _update_operator would then mutate the stream. Another way of putting could be, every stream operator has an upstream that it watches for management events, if it receives a management event it calls _update_operator and mutates self. |
The more I think about this, the streams that mirror data and state out to the management thread/system should not be upstreams in the existing sense of the term, I'll probably look at introducing a dedicated management stream and management feedback stream. these management streams will only interact from the management thread to the stream operators. |
Please do let us know what you end up implementing. I'm not convinced that you need a separate thread to do what you are suggesting - there is no reason two disconnected event graphs can't be run by the same event loop. However, if they are listening for very different kinds of events (e.g., user actions versus socket or timing signals) than you might be right. |
Does anyone have any suggestions or experience generating a real-time visualization of streams and the events flowing through the pipeline?
After I get a real time viz going I want to be able to select a stream/operator/edge between operators and modify the state. For example temporarily disconnect one stream from another, or change a variable that is currently static such as the condition in a filter operator.
The text was updated successfully, but these errors were encountered: