We occasionally use Shopify's excellent Dashing framework for headline system monitoring. This is a collection of jobs and widgets with a sample dashboard that we've found helpful.
Along with a sample dashboard (dashboards/sample.erb), we have the following jobs...
- cloudwatch_alarms - Fetches current CloudWatch alarms. Put your AWS keys in config.ru to use this.
- icinga - Fetches icinga alerts. Put your Icinga URL and, if necessary, auth details in config.ru.
- new_relic_alerts - Fetches current New Relic alerts (using the new alert system). Requires your New Relic API key in config.ru.
To use this sample, you should...
- Install bundler:
gem install bundler --no-rdoc --no-ri
. - Install dependencies using bundler:
bundle
. - Copy config.ru.example to config.ru:
cp config.ru.example config.ru
. - Edit config.ru to include the various credentials you need and remove the configs you won't use.
- Run dashing:
dashing start
. - Take a look in your browser at http://0.0.0.0:3030/dashing/.
We found this article helpful for deploying using Unicorn & nginx.
This has been configured to run under the "/dashing/" URI. To change this, read this simple how-to.
Real documentation on how Dashing expects dashboards to be structured is here but for quick reference...
assets
- CSS, CoffeeScript etc largel generated by the Dashing generator.dashboards
- Named dashboards. Here we have "sample.erb", which means you can go to "http://0.0.0.0:3030/dashing/sample/". Dashing scans this directory and generates the available dashboards URIs based on the filenames.jobs
- Background jobs that run and collect data.lib
- Helpful libraries (e.g. managing config variables).public
- Static files (e.g. favicon.ico).widgets
- HTML/CSS/CoffeeScript for the presentation widgets (e.g. we've added Simplemon in here).
Thanks for easy dashboardery...
- Shopify for building Dashing.
- The Icinga job is only slightly modified from dashing-icinga.