At Ziontech one of our main projects outside of normal client work is ‘Scrumpy’. Scrumpy is our software as a service (SaaS) product for the holiday rental industry, it’s a content management system, a booking system with payments, a housekeeping system, an availability portal etc, in short it does a lot and handles a large amount of traffic every day.
We employ the use of tools such as NewRelic and AWS CloudWatch to monitor the uptime, health and general performance of Scrumpy. With so many customers relying on Scrumpy for its multitude of functions it’s important that the service is both highly available and highly performant.
Beside being an interesting project (and that it’ll look really cool), building a realtime dashboard for Scrumpy is an attempt to increase visibility on the impact changes we make have on performance and to provide an overview of ‘now’ for everyone in the office.
Performance is a metric really made up of two things, system performance in the form of response times, error rates etc and then we have performance in a business sense in the form of the number of bookings made today, the number of enquiries etc. We add to and tweak Scrumpy nearly every day, it’s sometimes difficult for us to fully get a sense of the impact these changes have on ‘performance’ without executing queries, diving into Google Analytics and comparing charts.
Providing everyone in the office an overview of the service’s health is an important feature that attempts to answer quickly questions via uptime monitoring, error rates and currently assigned jobs, potentially avoiding the productivity drain that is interruption.
The hardware for the realtime dashboard is going to be fairly simple, a Raspberry Pi will be our driver and we’ve got a TV + Wall Mounting kit ready to go.
The Raspberry Pi will be running Raspbian and we’ll use Epiphany running in ‘Kiosk’ mode pointed to a server running ‘Dashing’ - Simple.
Dashing is a simple dashboard framework from Shopify, it's encompasses everything, it’s the server, the data gathering service and the interface itself. We’ll run Dashing on the Raspberry Pi itself, we’ll expose data via secure endpoints we’ll add to the Scrumpy application, gather uptime/error data from NewRelic, job data from Trello and instance data from Amazon.
We’ll put the dashboard on our Git server and then produce a small deploy script to be able to remotely trigger an update that will make the Raspberry Pi pull down the latest copy, restart the Thin web server and refresh the Epiphany browser - This will make it easy to add to the dashboard as/when we want to expose additional real-time data.Getting our hands dirty and playing with technology/frameworks outside our day to day work is a fun opportunity to both strengthen our existing skills and lay the foundations for new ones. We’ll be putting together the dashboard during lunch breaks this week, hopefully by next week we’ll have a functional realtime dashboard in the office, we’ll post an update next week on our progress.