Garie — Open source performance monitoring

David Boyne
3 min readMay 17, 2018

Picture this.

You just done a release of your application and everything went well. Your new features are in production, everybody is dancing and product owners are happy.

The next few weeks you release some more features. The release is successful. You are winners. Developers are happy & product owners are happy.

But, something in the background has changed…. 😱

The performance of your application has changed.

Your bundle size has increased…

The number of total requests has increased…

Your Google Speed index has increased….

Your accessibility score has gone down….

The time to first meaningful paint has increased…

Now if your lucky enough you might have some CI tools in place to check for these types of things before your release...

Or maybe one of your team mates has used Lighthouse on your app, or has ran your app through WebPageTest or even PageSpeed Insights.

If your lucky…

If not then how do you know if your application performance has gone up or down after a release? How do you monitor your performance?

If only there was a tool that can help 🤔……

I have been closely following the work the Google Developers have been doing with Lighthouse and it got me thinking….

Rather than manually doing these checks is there a way I could automate it and also monitor it over time. Even get alerted if anything changes?

So I played around with the idea and get something working.

Let me introduce you to Garie 🎆

https://github.com/boyney123/garie

Garie is an out the box solution to track web performance. Each performance tool (Lighthouse & Pagespeed insights) sits within its own Docker container. Using docker-compose we can build up an environment to start to track our web performance.

Docker Containers to create dashboards for teams, out the box.

Garie comes with out the box dashboards preconfigured in Grafana and picks up metrics with Prometheus.

Performance graphs which can be viewed over any time series for free!

Once setup, any team can start using it and collecting data. You can view your data over any time series, and start to monitor your application within seconds.

For example you could setup Garie to collect data every-time you do a release to production and start to monitor your application.

You can even use PagerDuty to set alerts of your metrics. For example if your Google Speed Index has gone over 3000 you could set an alert to warn the team.

This idea is a proof of concept, that I believe can be valuable to some teams. We are already exploring and using it at comparethemarket.com and hopefully you may find it useful too.

If you have any feedback/ideas I would love to hear them, or if you would like to contribute please feel free.

--

--

David Boyne

Music Loving 🎹, Father 👨‍👩‍👦‍👦, In with ❤️ JavaScript 🐱.