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
Integrating new UI #10
Comments
I'm glad you raised this issue, because I have questions regarding plugin system with new UI. To answer your question (with a bit of simplification), whenever plugin is loaded (each plugin is OTP application), all the files from its
If I understand correctly, with the new UI, the only way to introduce new view, is to implement it directly in erlangpl-ui codebase, right? |
Yes and no. We can compose UI from smaller plugins but it have to be on the client side where plugin is added. I can wrap existing code into React and use it that way. It's similar how Only concern I have about it is which part of the application should connect to backend. I think it could be wise to allow every plugin to connect on it's own, but they should have ability to communicate with main part as well. |
I think that these are very valid concerns. I'd really love to figure out complete plugin system, such as anybody could just provide a path to their plugin in a filesystem, both frontend and backend would be loaded and work beautifully. However it would probably take us a lot of time 😄 I think that at this point (given the amount of time we have) a reasonable solution would be:
Later on, when we have a concept of easy to use plugin system, we can split things up. But for now I'd be for making it work. What do you thing? Could you expand your last point a bit? I am not sure I get what you mean. |
Right now The only problem I can imagine is case when one plugin require data from other plugin. But yes, we can specify that this plugin require peer dependency and it will solve problem. So right now I'll focus on making I have one question though. If vizceral-message-passing-thingy will be responsible for vizceral view, what view |
Vizceral view will show message passing between nodes/processes. I think that our current approach with subscriptions to state changes is fine. In addition I have added a |
I'm currently experimenting with different library for rendering supervision trees, so I'll try to implement that in |
What lib are you using? |
sigma.js looks promising, although I have problems with embedding it into simple div, not to mention React (I really can't do frontend 😄 ). I chose that lib because for me 2d rendering of supervision trees is more readable than 3d. |
Are you experimenting on current |
First I used slightly modified |
Ok, if you have any problems let me know. I'll focus on making |
@baransu do you have any ideas on working with multiple socket connections on the frontend? |
I think we can easily create new WebSocket connection for every plugin route and it should just work. It even should work the same with multiple connections to the same route. |
@arkgil How things going with PoC has code written by Jakub by Michal wasn't sure about merging it into project. |
@baransu I'm now focusing on adding support for traffic view. First level should use information from Erlang's net_kernel to visualize traffic volumes between nodes. Second level should use information from Erlang tracer to visualize traffic volumes between processes. Third level should use information from the process_info/2 BIF to present state of the process. |
@arkgil I did some research on 2D visualizations of graphs/trees and would like to suggest to try the JavaScript library by Andrei Kashcha https://github.com/anvaka/VivaGraphJS I'm not sure if it fits your supervision tree view, but if you have issues with sigma.js, maybe it will turn out as an alternative. |
It looks really nice, similarly to sigma it offers a lot of customisation. I'll try it out, thanks! |
After erlanglab/erlangpl-ui#16 PR we should cut UI 0.1 and / cc @michalslaski @arkgil |
I'm doing research on adding
erlangpl-ui
as a new frontend. Only thing I need from backend is serving static folder atlocalhost:8000
as it is right now.I'll add
erlangpl-ui
as subrepo which will be fetched during build process and included in place of current UI.Only thing I have problem understanding is how
erl_3d
is included in current frontend because plugin provides frontend as well. With new version it would be hard or impossible, and we're thinking about replacing it with 2nd or 3rd level view of vizceral. But having 3D visualization is nice and I can work on new version of 3D renderer for that which will be available at/messages
within new UI. In that caseerl_3d
can only serve as backend plugin and all client code can be placed inerlangpl-ui
or new repo.What have to be done within this and
epl_3d
repo to provide new UI?/ cc @michalslaski @arkgil
The text was updated successfully, but these errors were encountered: