Today we are open-sourcing mesos-ui - A realtime, responsive dashboard for Apache Mesos, built with React, D3, Nodejs, Socket.io and Google Material UI for React.

As part of our work on Apollo we got thinking that we could potentially improve on the UI offered by Mesos out of the box and started putting a few ideas together as a proof of concept.

We are releasing that proof of concept today in the hope that others in the community might either find it useful, help us test it and report bugs or potentially get involved in taking the development of it forward.

## Taking it for a tour

The easiest way to run the UI is to run it as a Docker container. You can do this (in development mode) by executing the following -

docker run -p 5000:5000 -p 8000:8000 capgemini/mesos-ui

This should start up the UI on port 5000 as well as a backend stub (JSON) server on port 8000. The stub json-server is used so you do not have to have a running Mesos cluster up and running to experiment with the UI. Of course you won’t be able to experience any of the realtime updates, because the stub server is essentially static.

Running the UI in against a real Mesos cluster

If you are already running Mesos and Marathon, the easiest way to deploy the UI is through Marathon itself. We’ve included a marathon.json file in the repository to make this a bit easier for you.

To run the UI in marathon simply edit marathon.json and replace MESOS_ENDPOINT with the URL of your Mesos master leader node and then execute -

curl -X POST -HContent-Type:application/json -d @marathon.json http://MARATHON_ENDPOINT:8080/v2/apps

replacing MARATHON_ENDPOINT with your live Marathon endpoint URL.

For more instructions about getting up and running see our readme.

If you notice any problems with our instructions please report an issue over on Github

A short video

Here’s a short video of the UI in action which shows the realtime updates occurring as tasks and applications are deployed and scaled in the cluster.

Contributing

We’d love to hear from you and welcome any feedback, issues and contributions to help us improve the web interface. If you’re looking to get involved here’s some specific areas we’d welcome contributions on:

  • Building out new dashboard widgets
  • Adding custom themes
  • Helping us shape the roadmap and future features of the dashboard

For more information, please see our Github repository - https://github.com/Capgemini/mesos-ui or dive straight into the issue queue to get involved.

If you’re planning on attending Mesoscon Europe and want to hack on mesos-ui or just want to chat in general - be sure to find our Engineer Cam Parry who will be attending all week and at the hackathon on Friday.

Join our team

If you like the sound of what you've read and would like to join our team, we're hiring!

Find out more about working with Capgemini

Posts by Graham

Presentations by Graham

Comments