Participate in the Topology Visualization Prototype Program

Hello Nomad enthusiasts! The Nomad team is excited to share with you all the first prototype of the topology visualization to be added to the native Nomad Web UI.

Our goal with this feature is to help operators get a sense of the state of their cluster at a high level. How full our my nodes? How many allocations are running? Are the allocations for a job distributed well across my fleet of compute?

Although this will be most useful when starting with Nomad—before you have gone through the process of setting up an APM sink and creating custom dashboards—we think there is an opportunity for this visualization to always be useful given that it is custom tailored to the Nomad operator experience.

This is an ambitious project and for it to be successful for the many many ways people use Nomad, we need a lot of testing to validate that our design is sufficient for clusters of all shapes and sizes.

Sneak peek, it looks like this:

I’m convinced, what do I do next?

Great! The prototype is a fork of the Nomad UI that can be run independently via a docker container.

The tl;dr instructions are to run this:

$ docker run -p 6464:6464 --env NOMAD_API=http://localhost:4646 dingoeatingfuzz/nomad-prototype-ui:latest

For more detailed instructions visit the docker page

How should I give feedback?

Glad you asked! Feel free to use this thread to share questions, comments, and suggestions. If you are comfortable with it, sharing screenshots goes a long way! Even redacted ones.

If you have a lot of feedback to give, or private feedback to give, feel free to email me at mlange at hashicorp dot com or DM me on Twitter @DingoEatingFuzz

I have a large cluster, should I still run this?

You are welcome to try, but be aware that since this is a prototype and it makes no changes to the underlying Nomad API that it is not optimized. Before we make the commitment to make it snappy, we want to validate that we’re even building the right thing. That said, we are interested in making sure that this visualization is useful for large clusters, so beyond performance we want to make sure the experience scales.


That’s it!

I’m really excited to see this project take shape. I know it will be better with community feedback; all of your dedication to this product has been beyond amazing :star_struck:

P.S. Thank you to everyone who participated in the monitoring and forecasting survey from late last year. Your feedback helped inform this project.

12 Likes

Awesome work. We are going to take a look at this.

1 Like

We deployed this and already provided some feedback. This is the kind of innovation I love that very often comes out of HashiCorp. :smiling_face_with_three_hearts:

1 Like

Wow! Wow! Wow! :clap:

Q: Have you seen the swarm/peer-map of Vuze (nee Azureus)?
I haven’t used it any time recently

The circular swarm was something to stare at while the download was progressing? :star_struck:

A similar diagram could be shown, maybe, but for multiple regions/datacenters?

Something like this:

Thank you so much testing it out so quickly and providing feedback! It’s always great working with you all.

Wooah. I love a good radial arrangement. I really like the individual progress pies for pieces and the aggregate progress shown in the middle.

1 Like

I agree, radial (circular) UI/UX are always difficult to get right! :slight_smile:

Topo Viz Prototype 2 has been released!

Use tag topo-viz-0.2.0 or pull latest to check it out.

Changes include:

  1. Upfront Node Loading: Loading all the nodes upfront will make it a little clearer what’s going on and will hopefully make the initial experience less tumultuous. There are still no API changes, so this step will still load all the nodes individually and can take awhile.
  2. Upfront Data Processing: All the alloc/node calculations are done upfront which should make all interactions snappier.
  3. Dynamic Columns: Datacenters will be rendered in a single column instead of two if the distribution of nodes among datacenters isn’t very uniform. This improves density.
  4. Node Columns: If datacenters are rendered in a single column but you also have a lot of nodes, then the nodes within a datacenter will assume a two-column layout. This also improves density.
  5. Dynamic Node Labels: If you just plain have a lot of nodes, the individual labels probably aren’t very useful to you. They will now be hidden, but nodes themselves can be clicked to show node details in the left-hand info panel. This, you guessed it, improves density.
  6. Active allocation lines associate memory and cpu: When a single node has many allocations and those allocations use disproportionate amounts of cpu and memory, they can become visually unstacked. In this case, the lines that are drawn between allocations would be disjointed. Now lines are drawn from the active allocation to the memory of a sibling allocation and then again to the cpu of the same sibling alloc. I’m still not happy with this so expect another iteration on this later.

Thank you all for trying this out, the feedback has been so helpful! :partying_face:

2 Likes