Closed aocenas closed 3 months ago
By the way, if you use msagljs for small graphs, you might try its another layout type, IPSepCola, for larger graphs.
`const settings = new IPsepColaSetting() /**
I removed the dependency from esfx, and have not added any other dependencies. Here are the new packages.
@levnach ah amazing, thank you, didn't expect this to resolve be so fast 😅 . Already merged the code with the new version https://github.com/grafana/grafana/pull/88375 and everything seems to be fine.
Great. Just one thing, as I mentioned above in this comment: for larger graphs you can still use MSAGL by switching the layout to IPSepCola. You can test it at https://microsoft.github.io/msagljs/renderer-svg/index.html. It works fast and produces good layouts. .
I will take a look. Right now for bigger graphs we use D3 force based layout with some tweaks, which have better performance but makes for a layout that is more "organic" and can have lots of edge crossings so would be nice to have a better layout with similar performance for these cases.
We have a bit of a problem with this library because part of esfx needs to be built from source, which adds quite a bit of flakiness to our CI. You can see some details in this issue https://github.com/grafana/grafana/issues/83318.
I wondered if it would be even feasible to remove it for something else as PR contribution and if not what are the reasons, ie like is it important for performance, does it implement some specific algorithms that weren't available elsewhere or is it just part of some .NET -> JS conversion defaults?
I assume this is a bit of a long shot but wanted to know if such thing would even be an option or not before getting into it more.