106 points by fanf2 128 days ago
I've been (idly) looking for something like this just in the past couple of weeks, though I wasn't exactly sure what I wanted it to look like. I really like the visualization of service connections, great job!
I was playing with d3js to build a Sankey diagram, but it wasn't quite right -- this is pretty much what I was going for but hadn't quite pictured yet.
Ultimately, I am actually trying to build a dashboard to put up on a monitor on the wall with this information, but also overlay status (instance health, versions, etc). I guess it could sort of be done using sever-side image generation, so long as ETag caching is working properly, and you only regenerate the image if anything has actually changed.
viz.js (https://github.com/mdaines/viz.js demo at http://viz-js.com/) is graphviz compiled to JS using emscripten. graphviz-d3-renderer (https://github.com/mstefaniuk/graph-viz-d3-js demo at http://graphviz.it/) uses viz.js to render to (x)dot format, then parse that so you can use d3 on top of it. Using those two, you should be able to leverage the layout smarts of graphviz with the presentation smarts of d3.
I've had this exact same thing on my todo list for a long time but have never had the time to invest in it.
Netflix Vizceral kind of fits the bill as well https://github.com/Netflix/vizceral
Beautiful! I hope you keep extending it (eg to cover different levels of proxying). Agreed w/ chrissnell comment about dynamic inputs to the config...
Feature request: donate button / address for postards.
Will try this out as soon as I have a spare minute! Fantastic! :)
Very cool, but this would be so much cooler if the YAML was automatically generated from nginx, HAproxy, Traefik, etc. config files.
I've tried making some similar tool based on the output of RVTools to translate the output of RVTools to some terraform like script. I gave up on the idea after noticiing how much time it'll cost to catch most edge cases. You want those edge cases to increase your productivity, else you're just shifting your work.
I think a similar thing will happen here if you're gonna make it as broad. Maybe I'm overcomplicating things but I noticed that writing a good general parser is really, really hard.
I think this tool succeeds excellently in it's simplicity, might want some new features over time though - not sure, need to try it, but for now, great tool.
That would be cool. But consider that some people have thousands of wildcard vhosts
I feel like that is a great reason to generate it dynamically from the source configs.
Traefik, Enovy and Linkerd integrations would be awesome in addition to nginx/haproxy/apache
This is really nice. Good job!